我正在尝试使用鉴别器映射继承,但子类没有鉴别器值.如何使用AutoMappings解决它?
域对象如下:
public abstract class Item : GuidIdentityEntity {
public virtual string Name { get; set; }
}
public class Product : Item {}
public class RawMaterial : Item {}
Run Code Online (Sandbox Code Playgroud)
配置如下:
AssemblyOf<Item>()
.IgnoreBase<GuidIdentityEntity>();
.IncludeBase<Item>();
.Setup(setup => {
setup.DiscriminatorColumn = type => "Discriminator";
setup.IsDiscriminated = type => type == typeof(Item);
setup.SubclassStrategy = type => (type == typeof(Item))
? SubclassStrategy.Subclass
: SubclassStrategy.JoinedSubclass;
});
Run Code Online (Sandbox Code Playgroud)
映射的结果是:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" name="Solution.Core.Products.Item, Solution.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2e5ef41be3839ad7" table="`Item`">
<id name="Id" type="System.Guid, mscorlib, …Run Code Online (Sandbox Code Playgroud)