2010-04-16 42 views
0

我已经映射.hmb.xml中的实体并为类中的所有实体定义属性。Nhibernate - 删除一些简单的HQL

我有一些基本的成就,并获得使用下面的代码的所有记录。

public List<DevelopmentStep> getDevelopmentSteps() 
    { 
     List<DevelopmentStep> developmentStep; 
     developmentStep = Repository.FindAll<DevelopmentStep>(new OrderBy("Id", Order.Asc)); 
     return developmentStep; 
    } 

我从网签,我们可以写HQL,现在的问题是如何执行这个HQL如..

string hql = "From DevelopmentSteps d inner join table2 t2 d.id=t2.Id where d.id=IDValue"; 

我需要什么额外的类或其他东西添加到执行此一种HQL?

请帮我----由于

+0

获取会话是基本的NHibernate的,你不能没有会话做任何事情。看一下手册的第一章:“快速入门”,例如“与猫玩耍”:http://nhforge.org/doc/nh/en/index.html#quickstart-playingwithcats – 2010-04-19 07:38:47

回答

1
  • 要编写动态查询,我建议使用标准的API。这是动态的,因为你有几个不同类型的单个查询,你也想动态地设置排序。
  • 查询总是面向对象的。您不需要通过外键连接,只需浏览类模型即可。查询中也没有“表”,但实体。
  • 通过ID获取(单个)实例应始终使用session.Get(或session.Load)完成。只有NHibernate才能直接从缓存中取出它,而不需要数据库往返,它已经被加载了。

例如:

​​
+0

Criteria API,这是我必须添加的.dll文件吗?什么会议在这里,需要通过这里? – 2010-04-16 14:05:42

+0

该条件包含在Nhibernate.dll中。看看手册。 http://nhforge.org/doc/nh/en/index.html#manipulatingdata-criteria – 2010-04-16 14:16:17

+0

你给我提供了非常好的链接,我面临问题,如何创建会话对象来获取CreateCriteria方法。我无法进入我的课,你可以告诉我该怎么做得到session.CreateCriteria().......谢谢 – 2010-04-19 07:16:28