2012-01-19 9 views
1

コードを使用してEntity Framework(4.2)で1対1の関係を作成する場合があります最初の流暢な設定API、私はそれを行うにリンク/マップテーブルを使用する必要がありますねじれです。流暢な構成のマップ/リンクテーブルを使用してEFコードで最初に1対1の関係を作成する方法

ここに私のテーブルレイアウトの図があります。

1-to-1 relationship with link table

これは私が後だものです...

HasOptional(x => x.FieldPerson) 
    .WithOptionalPrincipal() 
    .Map(map => 
      { 
       map.ToTable("user_account__field_person"); 
       map.MapLeftKey("user_account_id"); 
       map.MapRightKey("field_person_id"); 
      }); 

...しかし、それを行う方法があるようには思えません。

代わりに、3つのエンティティを作成し、必要に応じて結合を使用して自分で管理することもできます。

これは可能ですか、それともEF Fluent APIが処理しないシナリオですか?

答えて

1

私は再び自分の質問に答えるつもりです!

リンク/マップテーブルの概念全体が多対多の関係を示しているため、EFコードでは最初にこの状況を処理するとは思われません。

これはデータベースの最初の状況であり、この段階でデータベースを変更できないため、これらのテーブルを処理する必要があります。

私がやったことは多対多のコード第1の構成を使用している...

HasMany(t=>t.FieldPersons) 
    .WithMany(t=>t.UserAccounts) 
    .Map(map => 
      { 
       map.ToTable("user_account__field_person"); 
       map.MapLeftKey("user_account_id"); 
       map.MapRightKey("field_person_id"); 
      }); 

...多くの多くを作成するから私を防ぐために、私のデータベーススキーマには何もありませんよう関係。私はその動作をしたい場合は、各フィールドに一意の制約を追加するだけで済みます(EFコードは最初はサポートされません)

関連する問題