1
有沒有什麼方法比較linq查詢中的泛型類型以便用NHibernate轉換爲SQL?NHibernate中的通用參數Linq查詢
事情是這樣的:
public abstract class DataProviderBase<TDAO, TId>
{
protected ISession Session;
public virtual TDAO GetById(TId id)
{
var allItems = GetAllQuery(); // gives me query, usually Session.Query<TDAO>();
var res = allItems.SingleOrDefault(item => item.Id == id);
// !!! Operator '==' cannot be applied to operands of type 'TId' and 'TId'
return res;
}
protected virtual IQueryable<TDAO> GetAllQuery()
{
var query = Session.Query<TDAO>();
return query;
}
}
我知道我可以使用Session.Get<TDAO>(id);
,但是這不是我要的。 GetAllQuery()
是一種虛擬方法,我希望能夠覆蓋它。
- NHibernate的版本:3.3.3.4000
- NHibernate.Linq版本:1.0
感謝
您是否試過'item.Id.Equals(id)'? – mickfold 2013-04-09 16:00:23
是的我有,它拋出:'System.NotSupportedException:布爾等於(System.Object)' – 2013-04-09 16:36:40
@MartinVolek這可能是問題的一部分或沒有,但NHibernate.Linq是用於NH 2.1.2; NH 3+擁有一個集成的Linq提供商。確保你沒有使用舊的軟件包。 – 2013-04-09 18:15:06