【发布时间】:2012-11-29 10:18:14
【问题描述】:
我正在使用 Nhibernate,但在获取具有多个派生类的基类(每个类映射不同的表)时遇到问题。当我查看请求时,Nhibernate 会加入每个派生表,这会对性能产生巨大影响...
这是我的课程的简化图:
public class Animal{
public virtual int ID { get; set;}
public virtual string Name { get; set;}
}
public class Dog : Animal{
//others properties
}
public class Cat: Animal{
//others properties
}
public class Person{
public virtual int ID { get; set;}
public virtual IEnumerable<Animal> Animals { get; set;}
}
一个人有一个动物列表,我只想要他们的名字。这个例子并不完美,而且更复杂(银行程序),但它很好地反映了我的问题。 我知道它可以做不同的等等,但它是一个遗产,所以我别无选择......
提前致谢。
【问题讨论】:
-
请在您选择名称的地方发布您的查询并提及您的继承映射策略(我假设每个子类都有一个表,但有或没有鉴别器?)。另外,您使用的是哪个版本的 NHibernate?
-
@cremor 每个子类的表不需要鉴别器列。
-
@cremor 我使用的是每个子类的表,但没有鉴别器列,我使用的是 3.3 版
-
@Firo 不需要,但有可能。见这里:nhforge.org/doc/nh/en/…
标签: nhibernate nhibernate-mapping fetch linq-to-nhibernate class-table-inheritance