이 경우 매핑 (속성 유형은 엔터티와 동일 함)은 단순/표준 참조 매핑입니다. 좀 더 자세한 내용은 여기를 좀 걸릴 수 있습니다 : Fluent mapping
참조/대일 :
...
References(x => x.VisibilityField);
그리고 그것 뿐이다 있습니다. 이와 같은 경우에는 대개 부모 자녀 관계를 나타낼 수 있습니다. 따라서 DEField
은 자체를으로, VisibilityField
을 가리킬뿐만 아니라 참조하는 사람 (VisibilityField
의 관점에서)을 알아야합니다. 1) 부모 참조 2) 어린이 모음 :
public abstract class DEField : EntityWithSerializableId
{
public virtual Boolean IsVisibilityDepended { get; set; }
public virtual String VisibilityExpression { get; set; }
public virtual DEField VisibilityField { get; set; } // Parent
public virtual IList<DEField> ChildFields { get; set; } // Children
}
그리고 좀 더 복잡한 매핑 예는 다음과 같이 수 :
public class DEFieldMap : ClassMap<DEField>
{
public DEFieldMap()
{
Table("DEFieldTable");
LazyLoad();
Id(x => x.Id)
.Column("Id")
.Not.Nullable()
.GeneratedBy.Identity();
Map(x => x.IsVisibilityDepended);
Map(x => x.VisibilityExpression);
References(x => x.VisibilityField)
.Class<DEField>()
.Access.Property()
.Cascade.None()
.LazyLoad()
.Column("ParentId");
HasMany<DEField>(x => x.ChildFields) // Children
.Access.Property()
.AsBag()
.Cascade.None()
.LazyLoad()
.Inverse()
.KeyColumn("ParentId");
}
}