2013-08-02 59 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(); 
相關問題