0

私はsplitPersonによってテーブル分割パターンを達成しようとしています| PersonDataはEntityFramework5と1:1の関係にあります。私はコードファーストのアプローチを使用しています。これは、何らかの理由でEF 5.0がモデルファーストとしての1:1の関係を好まないためです。これは、IMHOがひどく悪いことです。

両方ともPerson、次PersonDataのようにIDSQLServerで列をIDとして設定しました。

人物テーブル:

|ID|
|Name|
|.....|

PersonDataテーブル:

|ID|
|ID_Person|
|.....|

コマンドSQLが返された直後に、SaveChanges()テーブルのID列に明示的な値を挿入できません。

次に、PersonDataマップファイルを変更しました。

this.HasKey(t => t.ID).Property(p =>
p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

そして、再試行しました。今私は得る

の依存プロパティはReferentialConstraint、ストアで生成された列にマップされます。列:'ID'。

何を変更すればよいですか?

4

1 に答える 1

0

PersondData主キーを外部キーとして にマップする必要がありますPersonID_Personこの場合、1 対多の関係になるため使用できません (EF は一意の制約をサポートしておらず、一意性がなければ 1 対 1 の関係を構築できません)。

于 2012-12-25T19:48:38.510 に答える