4

是否可以将我自己的约定添加到 Entity Framework 4.3?

在4.1版本之前是可以的,像这样

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    modelBuilder.Conventions.Add<UppercaseColumnNameConvention>();  // Own convention
}

但是在 v4.1 之后 Add 方法是内部的。

我需要数据库中的所有列都为大写而不更改 POCO 对象,并且如果可能的话,不使用属性。b/o 有很多实体,这将很难重命名所有字段或添加属性[Column("UPPERCASENAME")]

4

1 回答 1

1

目前不支持可插拔约定。实体框架中的这个线程可插入约定仍然有效。您可以在 OnModelCreating 方法中使用 HasColumnName() 方法配置列名。如果您不想手动执行此操作,您可以将其自动化(例如使用反射)并对模型中的所有实体执行此操作。是的,这远非理想。

于 2012-05-23T23:06:00.050 回答