我的所有实体都从包含私有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>();
}
非常感谢任何帮助!