NHibernate根据非主键列从表中选择数据

时间:2013-08-02 15:30:25

标签: c# select nhibernate primary-key

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

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

简而言之:

  1. session.Get<T>(primary key value)将返回数据
  2. session.Get<T>(not primary key value)将返回null
  3. 有办法做2吗?

1 个答案:

答案 0 :(得分:3)

没有ID,没有办法使用Get或Load,因为本质上,它们通过它的唯一标识来提取单个记录。

如果您想从表中提取记录,则需要使用您要查找的条件发出查询。

示例:

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