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
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
相关文章推荐
- Castle学习笔记----认识Castle.AvtiveRecord
- Castle学习笔记----Castle.AvtiveRecord配置
- Castle ActiveRecord学习笔记四:各种映射
- Qt学习笔记1:初步认识控件
- 微信小程序开发学习笔记001--认识微信小程序,第一个微信小程序
- php学习笔记(二十二)cookie认识
- Spring Boot 学习笔记 - 认识Spring Boot框架
- 安装Python和认识Python---Python学习笔记一
- 【强化学习笔记】从 “酒鬼回家” 认识Q Learning算法
- 学习笔记之认识link 的rel 属性canonical
- AS3.0基础学习笔记(3): 认识类结构
- Castle ActiveRecord学习笔记三:初始化配置
- Ajax的认识与学习笔记---不断更新
- 【4412嵌入式开发板学习笔记】认识uboot
- [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld
- 认识用户体验的要素:用户体验学习笔记(2)
- 工作流学习笔记——Activiti整体认识二步曲
- C#.Net Castle ActiveRecord学习实践(3):映射基础
- MVC学习笔记2 认识项目的目录结构与核心的DLL
- Shell 学习笔记(一) 认识 Shell