2012-04-08 20 views
4

というプライマリキーを持つPageと呼ばれるテーブルがMicrosoft SQL Server 2008 R2にあります。私はNavigationと呼ばれるテーブルPageIDを持っています。 PageIDID列の一意の外部キー参照で、Pageです。これにより、NavigationPageレコードの間に1対1の関係が作成されます。データベースの最初のEntity Framework固有の外部キーを1対多のマッピング

データベースからモデルを生成するときには、PageNavigationレコードのリストが含まれている1対多の関係が作成されます。

エンティティフレームワークは、外部キーが関与していることを検出し、データベースの列の一意性を無視するだけですか?

NavigationPageID列のSQLは次のとおりです。

[PageID] INTEGER FOREIGN KEY REFERENCES [Page](ID) UNIQUE NOT NULL 

PageID列のSQLは次のとおりです。ここで

[ID] INTEGER PRIMARY KEY IDENTITY(0, 1) NOT NULL 

は何ラディスラフである私は、もともと持っていたソリューションであり、言及していた。

NavigationPageID列のSQLは:

[ID] INTEGER PRIMARY KEY FOREIGN KEY REFERENCES [Page](ID) NOT NULL 

答えて

5

エンティティフレームワークはまだので、この情報は実際に無視され、多くの関係に1がマップされている固有のキーをサポートしていません。 EFで1対1の関係を使用する唯一の方法は、共有主キーを使用することです(ナビゲーションのIDはFKからPageのIDになります)。

+0

私は元々それを試みましたが、それは悪い設計の決定のようなものであると懸念していました。私たちはそれに戻りたいと思う。ユニークなキーを無視してEFで話しているMicrosoftのページへの参照がありますか? –

+2

EFのユニークな制約についての[こちらはブログの投稿です](http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx)昨年。これは将来的にうまく実装できる機能のプレビューです。これは、今後の.NET 4.5/EF 5.0には含まれません。あなたが[Data UserVoice](http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-ie-candidate-display.php)でEF投票にユニークな制約を設定したい場合は、キーサポート)。 –

関連する問題