我用Fluent NHibernate和DiscriminateSubClassesOnColumn()來支持子類化。用於區分子類的列未映射到實體上的實際屬性。如何查詢特定類型的NHibernate?
如何創建只返回給定類型的實體的查詢?
這裏是我的嘗試,其中propertyName爲我鑑別列和值的名稱是類型名稱:
return _db.CreateCriteria<T>()
.Add(Restrictions.Eq(propertyName, value))
.List<T>();
然而,這給我的錯誤「無法解析屬性:類型:[我的實體類型]「,這是因爲該實體本身沒有該屬性。如果我將屬性添加到我的實體並將其映射,則會出現另一個錯誤:「System.IndexOutOfRangeException:Count = 7的此SqlParameterCollection的索引7無效。」