2016-11-04 5 views
0

デフォルトのFKの名前を変更しようとしていますが、コードの最初のマイグレーションは、別の名前の同じテーブルに2番目のFKを生成し続けます。異なる名前の重複したFKを生成するEFマイグレーション

FKモデルにはIDという名前のPKがあります。クライアントの要求するコンベンションを維持して、Id(名前)の名前を変更したいだけです。

1)生成された移行:

Generated Migration

2)マッピング:

Code First Map

私は何をすべき?

答えて

0

CorpoGestorエンティティが外部キーのプロパティを公開する場合は、MapMapKeyの代わりにHasForeignKeyを使用します。

HasRequired(x => x.Conselho) 
    .WithMany() 
    .HasForeignKey(x => x.IdConselho); 

別の解決策:あなたの代わりにCorpoGestorMapクラスの関係をマッピングする、プロパティにForeignKey属性を使用することができます。

public class CorpoGestor 
{ 
    ... 

    public int IdConselho { get; set; } 

    [ForeignKey("IdConselho")] 
    public virtual Conselho Conselho { get; set; } 
} 

警告:エンティティの属性を使用すると、概念的にとてもクールではありませんEntityTypeConfigurationマッピングクラスのコードを実装する場合は、エンティティをEFクラスに保持する必要があるデータレイヤコードで汚染しているためです。

関連する問題