如何将我自己的约定添加到EF 4.3(使列大写)

时间:2012-05-23 19:49:39

标签: entity-framework c#-4.0 entity-framework-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")]

1 个答案:

答案 0 :(得分:1)

目前不支持可插入约定。这个帖子Pluggable Conventions in Entity Framework仍然存在。您可以在OnModelCreating方法中使用HasColumnName()方法配置列名。如果您不想手动执行此操作,则可以自动执行此操作(例如,使用反射)并对模型中的所有实体执行此操作。是的,这远非理想。