2012-01-03 17 views
0

私は次の表を持っているが:マニュアルEntity Frameworkの関連

Table Group (
    id INT PK, 
    year INT PK, 
    name VARCHAR 
) 

Table Person (
    id PK, 
    GroupID INT, 
    name VARCHAR 
) 

データベースはので、私はPersonテーブルグループテーブルidからGroupIDから手動で関連付けを作成する定義された外部キーを持っていません。

これを行うには、[Person]を右クリックし、関連付けを追加します。私は多対1の関連付けを作成し、すべてが機能します。問題は、マッピングを追加するときです。 Groupテーブルには2つの主キーがあるため、エンティティフレームワークはPersonテーブルからyearキーにマップするものでした。

関連付けを作成するにはどうすればよいですか?

答えて

0

EFはデータベースと同じルールに従うため、このような関連付けは作成できません。主体からのすべてのPK列は、従属エンティティ内のFK列として存在する必要があります。

唯一の方法は、IDと名前を持つ個別のグループを選択し、読み取り専用のエンティティとしてマップし、それら2つの間でナビゲーションを構築することです。私はそれを試していないが、私はそれが動作するはずだと思う。グループには全く関係のない2つのエンティティがあり、人に関連するエンティティは変更を受け入れません(カスタムSQLコマンドやストアドプロシージャの挿入、更新、削除操作のマッピングなし)ので、独自の短所があります。

関連する問題