C#-流利的NHibernate-查询派生类
作者:互联网
可以说我有两节课:
public class A
{
public virtual int Id { get; set; }
public virtual Object1 Obj { get; set; }
}
public class B : A
{
public new virtual Object2 Obj { get; set; }
}
我使用Fluent NHibernate,并且为两个类创建了两个不同的映射.但是,当我尝试在存储库中查询类A时,FNH会同时找到类B和A,这是有道理的,因为两者都是A.
示例(此条件将同时查询A和B):
public List<T> GetByName(string name)
{
return Session.CreateCriteriaOf<A>.Add(Restrictions...);
}
编写CreateCriteriaOf< A>时,我只想查询A,而不要查询B.如何解决我的问题?
解决方法:
我认为您最好制作一个继承树,其中A和B都从一个常见的(抽象的)基本类型派生.然后,NHibernate可以将其区分为discriminator column.
当然,您的数据模型应该适应这种情况,因此希望您不要以任何方式指定您的模型.
标签:c,fluent-nhibernate 来源: https://codeday.me/bug/20191207/2087123.html