我是NHibernate的新手,并且一直在根据标准从单个表中进行选择。我读到如果我只想根据ID选择数据,并且我应该使用session.Get(id),那么使用IQuery是不必要的。
这适用于根据表的主键值进行选择,但我无法弄清楚如何根据不是主键的另一个唯一列来选择数据。有没有办法使用session.Get这样做,还是我朝错误的方向前进?
简而言之:
session.Get<T>(primary key value)
将返回数据session.Get<T>(not primary key value)
将返回null 有办法做2吗?
答案 0 :(得分:3)
没有ID,没有办法使用Get或Load,因为本质上,它们通过它的唯一标识来提取单个记录。
如果您想从表中提取记录,则需要使用您要查找的条件发出查询。
示例:
var whateverRecord = session.Query<WhateverType>().Where(x=>x.WhateverColumn == WhateverValue).FirstOrDefault();