`
stworthy
  • 浏览: 522797 次
  • 来自: ...
社区版块
存档分类
最新评论

基于DOTNET的活动记录框架

阅读更多

写过一段时间的DOTNET程序和ROR程序后,受ROR的ActiveRecord框架启发,故此写了DOTNET版本的活动记录框架。具有CRUD、事务、验证器、支持多数据库连接。

先介绍简单的CRUD操作。

建立表结构:

create table products(
id int primary key identity,
name varchar(50),
shape varchar(50),
amount int,
remark varchar(200)
)

 

然后定义类:

	using EtNet.ActiveRecord;

	[Table("products")]
	public class Product : ActiveRecordBase
	{
		public Product()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		[PrimaryKey]
		public int id
		{
			get {return _id;}
			set {_id = value;}
		}
		[Field]
		public string name
		{
			get {return _name;}
			set {_name = value;}
		}
		[Field]
		public string shape
		{
			get {return _shape;}
			set {_shape = value;}
		}
		[Field]
		public int amount
		{
			get {return _amount;}
			set {_amount = value;}
		}
		[Field]
		public string remark
		{
			get {return _remark;}
			set {_remark = value;}
		}

		private int _id;
		private string _name;
		private string _shape;
		private int _amount;
		private string _remark;
	}

 

 

1、增加记录

			Product p = new Product();
			p.name = "电脑";
			p.shape = "PII";
			p.amount = 30;
			p.Create();

 

2、修改记录

			 Product p = (Product)Product.Find(typeof(Product),1);
			p.shape = "PIII";
			p.amount = 23;
			p.remark = "备用";
			p.Update();

 

3、删除记录

			Product p = (Product)Product.Find(typeof(Product),1);
			p.Destroy();

 

4、查询记录

			Product p = (Product)Product.Find(typeof(Product),1);
			Console.WriteLine(p.id);
			Console.WriteLine(p.name);
			Console.WriteLine(p.shape);
			Console.WriteLine(p.amount);

 

其他的功能操作以后再介绍。

分享到:
评论
6 楼 jjx 2008-01-14  
linq 是一个通用技术
linq to sql是一个特定实现
linq 也可以用在nhibernate和其它orm之上的,而且已经有了,google一样吧

其实,要真正的实现activerecord模式,还是用动态语言整吧,ironptyhon,ironruby现在都可以

5 楼 stworthy 2008-01-14  
LINQ想要流行开也不是容易的事,毕竟目前ORM还是主流。Castle.ActiveRecord的底层是基于NHIBERNATE,个人觉得太庞杂。
4 楼 hongfei3 2008-01-12  
<div class='quote_title'>stworthy 写道</div><div class='quote_div'><div class='quote_title'>mooniscrazy 写道</div><div class='quote_div'>末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。</div><br/><p>如若真流行开,估计HIBERNATE也该退出舞台了。还需要多少时间,这个不得而知。</p></div><p><br/>其实NH就没有流行开来.</p><p>我们的两个项目已经在RTM上开始了林Q之旅.</p><p>我想这个时间是08年底吧.</p>
3 楼 stworthy 2008-01-12  
<div class='quote_title'>mooniscrazy 写道</div><div class='quote_div'>末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。</div><br/><p>如若真流行开,估计HIBERNATE也该退出舞台了。还需要多少时间,这个不得而知。</p>
2 楼 mooniscrazy 2008-01-11  
末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。
1 楼 yyliuliang 2008-01-11  
Castle.ActiveRecord

http://www.castleproject.org/

相关推荐

Global site tag (gtag.js) - Google Analytics