说明:利用Codesmith自带C#模板生成的代码不用修改可以直接使用,但用VB.net模板生成的代码有问题,需要修改,而且问题多多,我正在研究,
如果大家知道如何正确使用VB.net模板,请发邮箱jason-819@hotmail.com
今天主要讲解CRUD
一、添加操作
using CNhiber.BusinessObjects;
using CNhiber.ManagerObjects;
protected void AddUserInfo() {
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
UserInfo user = new UserInfo();
user.UserName = "小王";
user.Age = 12;
user.Address = "上海";
userinfoManager.Save(user);
}
这样就添加了一条记录到数据里面
二、查询操作
根据主键查询1 条记录
private void QueryUserInfo() {
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
UserInfo userinfo = userinfoManager.GetById(2);
this.Label1.Text = userinfo.UserName;
}
查询返回所有记录
private void QueryGetAll() {
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
this.GridView1.DataSource = userinfoManager.GetAll();
this.GridView1.DataBind();
}
按条件查询
private void QueryCriterion() {
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
IList<UserInfo> userlist = userinfoManager.CreateCriteria()
.Add(NHibernate.Criterion.Restrictions.Like("UserName", "%宝%"))
.AddOrder(new NHibernate.Criterion.Order("UserName", false)) //参数默认是升序,false代表非升序就是降序
.List<UserInfo>();
this.GridView1.DataSource = userlist;
this.GridView1.DataBind();
}
当然你可以把操作实例作为全全局变量
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
三、修改操作
private void UpdateUserInfo() {
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
UserInfo userinfo = userinfoManager.GetById(2);
userinfo.UserName = "修改用户名";
userinfoManager.Session.CommitChanges();
}
四、删除操作
private void DelUserInfo()
{
IManagerFactory managerFactory = new ManagerFactory();
IUserInfoManager userinfoManager = managerFactory.GetUserInfoManager();
UserInfo userinfo = userinfoManager.GetById(2);
userinfoManager.Delete(userinfo);
}
注。查询操作方法比较多,我只列出了其中的几种,还有HQL,原生SQL查询,我将在下篇介绍。