您是否尝试过使用MetadataTypeAttribute?
[MetadataType(typeof(Metadata))]
public class DerivedEntity : PocoEntity
{
private sealed class Metadata
{
[Required, AnotherAnnotation]
public object NameOfPropertyToDecorate;
}
}
编辑
这不起作用。如果将MetadataType
属性添加到基类,它会起作用;如果将其添加到派生类,则注释将被忽略。这种行为感觉像是一个错误,但可能是有原因的。
您最好的选择可能是使用fluent API来配置您的实体。
public class YourContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new PocoEntityConfiguration());
}
}
public class PocoEntityConfiguration : EntityTypeConfiguration<PocoEntity>
{
public PocoEntityConfiguration()
{
Property(e => e.TheProperty)
.IsRequired()
.HasMaxLength(80)
...
;
}
}