2013-08-02 33 views
2

我是NHibernate的新手,并且一直在根据标准从单个表中进行选择。我读过使用IQuery是不必要的,如果我只想选择基于ID的数据,并且我应该使用session.Get(id)。NHibernate从基于非主键列的表中选择数据

这适用于基于表的主键值进行选择,但我无法弄清楚如何基于另一个不是主键的唯一列来选择数据。有没有办法使用session.Get来做到这一点,还是我走错了方向?

简而言之:

  1. session.Get<T>(primary key value)将返回数据
  2. session.Get<T>(not primary key value)将返回null

有没有办法做到2?

+0

这可能会为你工作:http://stackoverflow.com/questions/2274969/using-nhibernates-isession-get-w-a-composite-key – Greg

回答

3

如果没有ID,就没有办法使用Get或Load,因为它们通过它的唯一标识拉动单个记录。

如果您想将记录拉出表格,则需要使用您要查找的条件发出查询。

例子:

var whateverRecord = session.Query<WhateverType>().Where(x=>x.WhateverColumn == WhateverValue).FirstOrDefault(); 
相关问题