论坛首页 编程语言技术论坛

基于DOTNET的活动记录框架

浏览 2554 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-09  

写过一段时间的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);

 

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

   发表时间:2008-01-11  
Castle.ActiveRecord

http://www.castleproject.org/
0 请登录后投票
   发表时间:2008-01-11  
末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。
0 请登录后投票
   发表时间:2008-01-12  
mooniscrazy 写道
末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。

如若真流行开,估计HIBERNATE也该退出舞台了。还需要多少时间,这个不得而知。

0 请登录后投票
   发表时间:2008-01-12  
stworthy 写道
mooniscrazy 写道
末日黄花,没有看头了。现在流行语言集成查询,不需要这个了。

如若真流行开,估计HIBERNATE也该退出舞台了。还需要多少时间,这个不得而知。


其实NH就没有流行开来.

我们的两个项目已经在RTM上开始了林Q之旅.

我想这个时间是08年底吧.

0 请登录后投票
   发表时间:2008-01-14  
LINQ想要流行开也不是容易的事,毕竟目前ORM还是主流。Castle.ActiveRecord的底层是基于NHIBERNATE,个人觉得太庞杂。
0 请登录后投票
   发表时间:2008-01-14  
linq 是一个通用技术
linq to sql是一个特定实现
linq 也可以用在nhibernate和其它orm之上的,而且已经有了,google一样吧

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

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics