8

私はいくつかの複合外部キーを含むデータベースを持っています。Entity Frameworkデータベースファーストコンポジット外部キー

ALTER TABLE [dbo].[WorkingRosters] WITH NOCHECK ADD CONSTRAINT 
[FK_WorkingRoster_ShiftLeaveCode] FOREIGN KEY([OrganizationID], [ShiftLeaveCode]) 
REFERENCES [dbo].[ShiftLeaveCodes] ([OrganizationID], [Code]) 
GO 

私は、このデータベースからモデルを生成するために、Entity Frameworkの5データベース・ファーストを使用しようとしています:たとえば、ここに外部キーの生成スクリプトです。ただし、複合外部キーの関連付けは、すべての表および他の単純な外部キーで生成されていません。

どのようにいずれかのことができます。

  1. を手動で私がマッピングを持っているように、エンティティフレームワークが適切にこれらの外国 キーを生成している EDMX(痛い)
  2. の背後にあるXMLでこれらの複合外部キーを作成します

ありがとう!

+1

特に*どのようにあなたのエンティティを生成していますか? edmxエディターを使用していますか?カスタムコード生成戦略を使用していますか? – Heather

+0

あなたの 'ShiftLeaveCodes'テーブルの' OrganizationID'と 'Code'複合主キーはありますか?そうでない場合(たとえば、それが単なる一意のインデックスである場合)、それは動作しません。 –

+0

コンテキストメニューの[データベースからモデルを更新]を使用して、エンティティがデータベースから生成されています。 –

答えて

1

Entity Framework Database Firstは、必要に応じてユニークキーで動作しません。それらをナビゲーションプロパティにしたい場合は、それらを外部キーとして設定する必要があります。

ここでは、1)NavPrsだけが必要です。2)接合テーブルがエンティティとして必要です。

1)これを達成するには、これらの外部キーを複合主キーとして設定するだけです。

2)これを実現するには、それらを外部キーのままにして、ジャンクション表のIDタイプID列を宣言し、これを主キーとして設定します。

これはあなたのために働くはずです

関連する問題