如何使用C#(ClassMapping)将NHiberNate映射到同一表中的父级
本文关键字:映射 何使用 ClassMapping NHiberNate | 更新日期: 2023-09-27 18:13:00
我有一个下面的类,它有一个相同类型的父类
public class Unit
{
public virtual int UnitKey { get; set; }
public virtual string UnitName { get; set; }
public virtual string UnitType { get; set; }
public virtual Unit Parent { get; set; }
public virtual User UnitLeader { get; set; }
}
数据库中有一个名为单位的表
Unit_Key (int)
Unit_Name (varchar)
Unit_Type (varchar)
Parent_Key (varchar)
User_Key (int)
以下是映射类,
internal class UnitMapping : ClassMapping<Unit>
{
public UnitMapping()
{
Id(x => x.UnitKey, map =>
{
map.Column("Unit_Key");
map.Generator(Generators.Assigned);
});
Property(x => x.UnitName, map =>
{
map.Column("Unit_Name");
map.NotNullable(true);
});
Property(x => x.UnitType, map =>
{
map.Column("Unit_Type"); map.NotNullable(true);
});
ManyToOne(x => x.UnitLeader, map =>
{
map.Column("User_Key"); map.Cascade(Cascade.None);
});
}
}
如何映射同一表中的Parent(同一类的类型(。
感谢
与处理不同实体的方式完全相同。
您已经在映射一个ManyToOne
(UnitLeader
(;CCD_ 3也没有什么不同。