1

我需要设置一个属性“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();
        }
4

1 回答 1

0

你可以做的是继承你的类,AbstractMap<T>而 thisAbstractMap<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>都会调用您想要的方法。

于 2013-06-28T19:54:14.237 回答