1

EF では、相互参照テーブルは、多対多の関係を作成することによって抽象化されます。例えば

ここに画像の説明を入力

dbo.TrialContactCrossReferenceTrialContactId を TrialID に関連付けるSQL テーブルがあります。ここで、EF は Entity を生成しませんでしたTrialContactCrossReference。これは、この MANY-MANY リレーションシップを使用したためです。上記のテーブルに新しい行を追加するにはどうすればよいですか?

私は試した

context.TrialContacts.???そしてcontext.ClinicalTrials.???、これをどうするかわかりません。トライアルに関連付けたい新しい連絡先がある場合、どうすればよいですか?

4

3 に答える 3

2

トライアル.連絡先.追加(連絡先);

また

contact.Trials.Add(トライアル);

または(そして私のアドバイス)

相互参照テーブルの追加エンティティを作成できます。これにより、多対多が 2 つの一対多の関係に変換されます。%90 以上の場合、クロステーブルには追加の列 (少なくとも IsActive、RecordDate など) がありますが、将来的にはそうなる可能性があり、コードに多くの変更を加える必要があります。

于 2013-07-30T20:42:29.673 に答える
1

これを設定するとき、私には明らかではなかったトリックがあります。TableA は、それ自体ではなく、TableB に追加する必要があります。実際、生成されたエンティティを見ると、各エンティティには他のエンティティの List<> があります。

class TableA
{
   List<TableB> TableB;
}

class TableB
{
   List<TableA> TableA;
}

たとえば、TrialContact を ClinicalTrial に追加する場合は、次のように記述します。

context.ClinicalTrials.TrialContacts.Add(trialContact);
context.SaveChanges()

次に、関係を反映するように xRef テーブルを更新します。

于 2013-07-30T21:34:25.290 に答える