2

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

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

简而言之:

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

有没有办法做2?

4

1 回答 1

3

没有 ID 就无法使用 Get 或 Load,因为从本质上讲,它们通过其唯一身份提取单个记录。

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

例子 :

var whateverRecord = session.Query<WhateverType>().Where(x=>x.WhateverColumn == WhateverValue).FirstOrDefault();
于 2013-08-02T16:28:57.423 回答