编程语言
首页 > 编程语言> > C#-流利的NHibernate-查询派生类

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