NHibernate框架的HQL增删改查

NHibernate框架的HQL增删改查

NHibernate提供有很多种查询方式给我们选择,如:
1、NHibernate查询语言(HQL,NHibernate Query Language)
2、条件查询(Criteria API,Query By Example(QBE)是Criteria API
的一种特殊情况)
3、原生SQL(Literal SQL,T-SQL、PL/SQL)。
 这回我们来谈论一下NHibernate查询语言(HQL,NHibernate Query Language)
 是NHibernate特有的基于面向对象的SQL查询语言,它具有继承、
 多态和关联等特性。实际上市用OOP中的对象和属性映射了数据库中的表和列。
 我们就继续上一回发过的教程继续那个例子接着讲
 1、from子句
    1)、返回表中所有数据
    public IList<Person> GetList()
    {
 return _session.CreateQuery("from Person").List<Person>();
    }
    2)、使用as来赋予表的别名,as可以省略
    public IList<Person> GetList()
    {
 return _session.CreateQuery("from Person as p").List<Person>();
     }
2、select子句
    1)、在结果集中返回指定的对象和属性
 public IList<int> Select()
 {
  //返回所有Person的ID
  return _session.CreateQuery("select p.ID from Person p").List<int>();
 }
3、通过ID获取对象
        public Person GetPersonByID(int id)
        {
            Person model = _session.Get<Person>(id);
            _session.Close();
            return model;
        }
4、添加记录
 public bool InsertPerson(Person person)
 {
  int newid=(int)_session.Save(person);
  _session.Flush();
  return newid>1?true:false;
 }
5、更新记录
 public bool UpdatePerson(Person person)
 {
    bool bol=true;
           try
            {
                _session.Update(model);
                _session.Flush();
            }
            catch
            {
               
                bol=false;
            }
            return bol;
  
 }
6、删除记录
        public bool DeletePerson(Person model)
        {
            //逻辑删除
            bool bol = true;
            try
            {
                _session.Delete(model);
                _session.Flush();
            }
            catch
            {
                bol = false;
            }

            return bol;
        }

转载于:https://www.cnblogs.com/zknu/archive/2012/12/05/2802566.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值