2017-07-09 3 views
1

をマップする必要があるのですが、私はカウンターパーティー・オブジェクトへの外部キーを持つ貿易オブジェクトを持っていると言います。私は私の展覧会で型相手方のナビゲーションプロパティを持つようにしたいオブジェクト - 私はまた私の貿易オブジェクトの外部キー列(CounterpartyId)を持っている必要がありますか?私の実験は、私が行っていることを示しているようです。私は[ForeignKey( "CounterpartyId"]をナビゲーションに追加しようとしましたが、CounterpartyId列を持たないと機能しません。、私はまた、外部キー列

答えて

3

いいえ、明示的なFKプロパティは必須ではありません。対応するデータベース・テーブルの"Counterparty_Id"shadowプロパティと列名。この場合、

は、データ注釈付きshadowプロパティ/カラム名を設定する方法はありませんので、あなたがしたい場合は、流暢な設定をする必要がありますことを

MapKey(明示的な性質を持っているとき HasForeignKeyではなく)と流暢な設定が 正確モデルのナビゲーション/ FKの性質を反映しなければならないことを

は注意してください。たとえば、あなたが後であなたのTradeオブジェクトにConterpartyIdプロパティを追加することを決定した上で、あなたは

.HasForegnKey(e => e.CounterpartyId) 
+0

Mapを交換する必要がありますので、設定は唯一の右の流暢APIにマッピングすることができるもののサブセットをマッピングすることができる属性?これは少し残念ですが、流暢なAPIは少し冗長です。属性マッピングと流暢な構成を混在させることは可能ですか? – Shane

+0

修正。そして、うん、流暢なAPIは少し冗長ですが、IMOははっきりしています。例えば ​​'ForegnKey'は、ナビゲーションプロパティまたはFKプロパティにも適用することができる - (特に関係)の属性を使用すると、あなたがやっている内容を正確に把握することはありません。文字列はどこに適用するかによって異なります。まったく直観に反した属性を持つ複合PK/FKについては言及しない。このために非常に多くの –

+0

おかげで、あなたの答えをアップ投票しています。私は別の質問をhttps://stackoverflow.com/questions/45007072/object-added-through-collection-navigation-property-not-saved-when-parent-is-detに投稿しました。あなたは答えを知ることはできませんその人にあなたはいますか? – Shane