我有一個類的LINQ to NHibernate的不返回正確的數據
public class Item : IItem
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool IsActive { get; set; }
}
public interface IItem
{
Guid Id { get; set; }
string Name { get; set; }
bool IsActive { get; set; }
}
public class ItemMap : ClassMap<Item>
{
public ItemMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.IsActive);
}
}
在我的數據庫中,我創建了五個項目。三個將IsActive標誌設置爲true,另外兩個將其設置爲false。
當使用它返回所有五個項目的接口:
var q = from i in session.Linq<IItem>()
where i.IsActive == true
select i;
然而,使用具體的類,當它返回正確的三個項目:
var q = from i in session.Linq<Item>()
where i.IsActive == true
select i;
編輯
我會喜歡返回一個接口,因爲我已經讀過,我應該返回非具體的類。請注意,實際上,這些Linq查詢位於不同項目的存儲庫中(以防成爲Web或WPF應用程序)
你最後一句話沒有意義。你可以從Item中繼承子類,並且仍然使用Item類型來訪問子類的實例。 – Timwi 2010-08-19 22:14:24
@Timwi,你是對的,我會編輯,以正確傳達意圖 – 2010-08-19 22:45:26