EF 6 - 基本类型的私人财产定制公约

时间:2015-05-21 14:01:45

标签: entity-framework entity-framework-6

我的所有实体都从包含私有RowVersion属性的基类继承。我正在尝试配置自定义约定,并收到以下错误:

  

“属性'RowVersion'不是'CustomerResponse'类型的声明属性。通过使用Ignore方法或NotMappedAttribute数据注释验证是否未从模型中显式排除该属性。确保它是有效的原语属性“。

这是我的惯例:

public sealed class RowVersionConvention : Convention
{
    public RowVersionConvention()
    {
        Types().Having(t => t.BaseType.GetProperty("RowVersion", BindingFlags.SetProperty | BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Instance))
            .Configure((config, property) =>
            {
                config.Property(property).IsRowVersion();
            });
    }
}

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

        modelBuilder.Conventions.Add(new RowVersionConvention());
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }

非常感谢任何帮助!

0 个答案:

没有答案