您的位置:首页 > 其它

Castle学习笔记----认识Castle.AvtiveRecord

2007-11-18 19:49 405 查看
Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。

ActiveRecord提供的简洁的O/R映射

ActiveRecord是Castle中提供的一个数据访问框架,它在底层封装了NHibernate的操作,使用特性来代替映射文件,它提供的简洁的O/R映射会让你惊叹原来实现持久化数据层是那么简单。

一.首先建立实体类并完对数据库的映射

namespace ZDS.Test.Model

{

[ActiveRecord("Users")]

public class Users : ActiveRecordBase<Users> //继承于Castle的ActiveRecordBase

{

private int oid;

[PrimaryKey(PrimaryKeyType.Identity,"Oid")]

public int Oid

{

get { return oid; }

set { oid = value; }

}

private string name;

[Property("Name",Length=100,NotNull=true)]

public string Name

{

get { return name; }

set { name = value; }

}

private string sex;

[Property("Sex")]

public string Sex

{

get { return sex; }

set { sex = value; }

}

private string age;

[Property("Age")]

public string Age

{

get { return age; }

set { age = value; }

}

}

}

大家可能注意到了,每一个属性上面都加上了特性[Property()].

如果属性名和字段名一致,[Property()]中可以为空,也可以写上字段的名字.

这里用[PrimaryKey]特性指定Id作为主键,并且说明了主键的类型为自增型的,用PrimaryKeyType.Identity来说明.

下一步我们为实体类根据需要加上静态的操作方法,至于Create(),Update(),Delete(),Find(),FindAll()等方法则会直接从ActiveRecordBase基类中继承,示例代码如下:

二.建立实现层类,直接继承于ActiveRecordBase的方法

namespace ZDS.Test.Component

{

public class UserComponent:ActiveRecordBase<Users> //注意这里要继承于ActiveRecordBase

{

public static void Create(Users user)

{

user.Create();

}

public static IList<Users> QueryAll()

{

return (IList<Users>)FindAll(typeof(Users));

}

public static Users QueryByOid(int Oid)

{

//return (Users)FindByPrimaryKey(typeof(Users),Oid);

return (Users)Find(Oid);//这里的这两种方法都是可以的

}

}

}

三.建立测试程序来调用这些方法

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

GridViewDataBind();

}

}

/// <summary>

/// 添加用户

/// </summary>

protected void Button2_Click(object sender, EventArgs e)

{

Users user = new Users();

user.Name = this.TextBox1.Text.Trim();

user.Sex = this.TextBox2.Text.Trim();

user.Age = this.TextBox3.Text.Trim();

UserComponent.Create(user);

GridViewDataBind();

}

/// <summary>

/// 查询全部

/// </summary>

public void GridViewDataBind()

{

this.GridView1.DataSource = UserComponent.QueryAll();

this.GridView1.DataBind();

}

/// <summary>

/// 查询但条数据

/// </summary>

protected void Button3_Click(object sender, EventArgs e)

{

Users user = UserComponent.QueryByOid(int.Parse(this.TextBox4.Text.Trim()));

this.Label1.Text = string.Format("编号为:{0},姓名:{1},性别:{2},年龄:{3}",

user.Oid,

user.Name,

user.Sex,

user.Age);

}

}

本次笔记就先记录于此,要想程序能够正常运行还得配置一些文件,具体配置请看我写的Castle学习笔记----Castle.ActiveRecord配置

/article/4658369.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: