VS2008-Codesmith-Nhibernate使用(二)

来源:互联网 发布:3000多的笔记本知乎 编辑:程序博客网 时间:2024/05/20 21:22

说明:利用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查询,我将在下篇介绍。