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

現時点では、プラグイン可能な規則はサポートされていません。EntityFrameworkのこのスレッドPluggableConventionsは引き続き適用されます。OnModelCreatingメソッドのHasColumnName()メソッドを使用して列名を構成できます。手動で実行したくない場合は、自動化して(たとえば、リフレクションを使用して)、モデル内のすべてのエンティティに対してこれを実行できます。はい、それは理想からは程遠いです。

于 2012-05-23T23:06:00.050 に答える