2017-05-23 10 views
0

私はクラスPERTActivity_TMetadataTyperクラスから継承しているので、他のテーブルもあります。Entity Framework 6余分な継承カラムを追加する

[ForeignKey("BSContext")] 
public int? BSContextId { get; set; } 
public BSContext BSContext { get; set; } 

をしかし、今、私は同様にそれらの特性を有することがMetadataTyperから継承するすべてのテーブルが必要になります。その兄弟PERTActivity_T向かい

はすでに特性を有しています。だからPERTActivity_Tから削除してMetadataTyperに含めましたが、マイグレーションを生成すると、BSContextIdからBSContextにリレーションシップが削除され、BSContext_Idという追加フィールドが追加され、外部キーが追加されます。

これは、PERTActivity_Tの場合にのみ発生し、MetadataTyperから継承する他のテーブルは正常に移行します。

最初は、手動で移行を編集して、PERTActivity_Tへのすべての変更を削除しようとしました。これは、必要な方法で既に作成されています。 EFはBSContext_Idが不明であるというエラーをスローします。

PERTActivity_Tに追加の変更は必要ないことをEFに理解させるにはどうすればよいですか?

答えて

0

私の問題はBSContextに既にナビゲーションプロパティーが含まれていたことがわかりましたPERTActivity_Tし、それを複製しました。

私がしなければならなかったのは、重複したナビゲーションプロパティを削除し、移行が正常に行われたことでした。

関連する問題