gpt4 book ai didi

nhibernate - NHibernate Mapping-by-Code 的每个子类继承映射表

转载 作者:行者123 更新时间:2023-12-04 23:28:08 25 4
gpt4 key购买 nike

如何在新的 NHibernate Mapping-By-Code 中的 Table Per Subclass 策略中为此类编写映射:

public class Person
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}

public class JuridicalPerson : Person
{
public virtual int Id { get; set; }
public virtual string LegalName { get; set; }
}

public class PrivatePerson : Person
{
public virtual int Id { get; set; }
public virtual bool Sex { get; set; }
}

最佳答案

这是一个略有缩写形式的可能映射

public class PersonMapping : ClassMapping<Person>
{
public PersonMapping()
{
Table("person");
Id(x => x.Id, m => m.Generator(Generators.Native));
Property(x => x.Name);
}
}

public class JuridicalPersonMapping : JoinedSubclassMapping<JuridicalPerson>
{
public JuridicalPersonMapping()
{
Table("juridical_person");
Key(m => m.Column("person_id"));
Property(x => x.LegalName);
}
}

public class PrivatePersonMapping : JoinedSubclassMapping<PrivatePerson>
{
public PrivatePersonMapping()
{
Table("private_person");
Key(m => m.Column("person_id"));
Property(x => x.Sex);
}
}

您不需要在派生类中重复声明 Id 属性。它继承自父 Person 类。

关于nhibernate - NHibernate Mapping-by-Code 的每个子类继承映射表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com