VS2008-Codesmith-Nhibernate使用(二)

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值