我需要设置属性“DynamicUpdate();”对于我项目中的所有实体,但我不想在每个类映射中复制代码,怎么做?
现在我的类图示例:
public CStatMessagesVOMap()
{
DynamicUpdate();
Table("TBCSTATMESSAGES");
Id(x => x.Id);
Map(x => x.Cstat).Not.Nullable();
Map(x => x.Message).Length(500).Not.Nullable();
Map(x => x.Allowed).Not.Nullable();
References(x => x.DocumentKind).Column("DOCUMENTKIND").Cascade.None();
}
public DocumentKindVOMap()
{
DynamicUpdate();
Table("TBDOCUMENTKIND");
Id(x => x.DocumentKind).Column("DOCUMENTKIND");
Map(x => x.Name).Length(20).Not.Nullable();
Map(x => x.DocumentKind).CustomType<short>().Not.Nullable();
HasMany(x => x.Messages).KeyColumn("DOCUMENTKIND").Inverse().Cascade.All();
}
答案 0 :(得分:0)
您可以做的是从AbstractMap<T>
继承您的课程,此AbstractMap<T>
继承自ClassMap<T>
,因此在您可以调用DynamicUpdate()
的构造函数上。
public class AbstractMap<T> : ClassMap<T>
{
public AbstractMap()
{
DynamicUpdate();
}
}
public class CStatMessagesVOMap : AbstractMap<CstatMessagesVO>
{
public CStatMessagesVOMap()
{
Table("TBCSTATMESSAGES");
Id(x => x.Id);
Map(x => x.Cstat).Not.Nullable();
Map(x => x.Message).Length(500).Not.Nullable();
Map(x => x.Allowed).Not.Nullable();
References(x => x.DocumentKind).Column("DOCUMENTKIND").Cascade.None();
}
在这种情况下,从AbstractMap<T>
继承的所有类都会调用您想要的方法。