我有一个类的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