具有NHIbernate的强型性质

具有NHIbernate的强型性质,nhibernate,Nhibernate,我在项目中使用NHibernate,但我不喜欢使用类型化属性从数据库中选择项。 有没有可能把它改为 session.CreateCriteria(typeof(IEntry)).AddOrder(Order.Desc("Alias")) 像这样的事 session.CreateCriteria(typeof(IEntry)).AddOrder(Order.Desc(x=>x.Alias)) 谢谢, 亚历山大 我尝试使用NHibernate.Link,但无法使用,因为它没有强名称:(将

我在项目中使用NHibernate,但我不喜欢使用类型化属性从数据库中选择项。 有没有可能把它改为

session.CreateCriteria(typeof(IEntry)).AddOrder(Order.Desc("Alias"))
像这样的事

session.CreateCriteria(typeof(IEntry)).AddOrder(Order.Desc(x=>x.Alias))
谢谢, 亚历山大


我尝试使用NHibernate.Link,但无法使用,因为它没有强名称:(将等待下一个版本,现在继续使用我的解决方案)

这里是:

在NHibernate主干(3.0版本)中有两种方法:

  • 查询结束,新的标准api
  • 林克

    • 对于NH 2,您可以使用

      list=session.CreateCriteria(typeof(Cat))
      .Add(c=>c.Age>=2和&c.Age c.Name,Order.Desc)
      .List();
      
      在NH3中,您将使用

      list=session.QueryOver()
      其中限制(c=>c.Age)。介于(2)和(8)之间
      .OrderBy(c=>c.Name).Desc
      .List();
      
      或者你可以用NHibernate.Linq

      list = (from c in session.Linq<Cat>()
          where c.Age >= 2 && c.Age <= 8
          orderby c.Name descending
          select c).ToList<Cat>();
      
      list=(来自session.Linq()中的c)
      
      其中c.Age>=2&&c.Age replicate:感谢您向我介绍nh lambda extensions项目!
      list = session.QueryOver<Cat>()
          .WhereRestrictionOn(c => c.Age).IsBetween(2).And(8)
          .OrderBy(c => c.Name).Desc
          .List<Cat>();
      
      list = (from c in session.Linq<Cat>()
          where c.Age >= 2 && c.Age <= 8
          orderby c.Name descending
          select c).ToList<Cat>();