我认为应该是一个相当简单的映射问题,但没有任何运气弄清楚我错过了什么让它工作。我将跳到一个简单的例子来说明我正在尝试的事情:
//Base user class
public class UserBase : Entity
{
//properties user class should have
}
//
//Concrete User class (in different assembly)
//
//Item in same assembly as UserBase
public class Item : Entity
{
public virtual UserBase User { get; set; }
//other properties etc..
}
因此,UserBase类在不同的程序集中实现并映射为User类的一部分。这很好,但是因为我没有将UserBase映射为它自己的映射,所以当映射试图在Item类上运行时,它会爆炸,因为UserBase没有映射。
我的问题是;是否可以告诉Item类使用UserBase的具体类?
我正在使用Fluent NHibernate进行映射,但我认为只要我能正确推送Mapping文件的外观,我就可以弄清楚如何在Fluent NHibernate中实现它。
谢谢, 布赖恩
答案 0 :(得分:0)
您必须为UserBase以及UserBase的每个子类创建映射,并指定这些类是UserBase的子类。
在NHibernate中有三种实现继承的方法。我不知道Fluent是否有任何关于它的文档,但我相信this文章应该对您有所帮助。