私はVS2010プロジェクトでEntity Framework 4.0を使用しようとしています。私はいつも大きな成功を収めて私のプロジェクトにLinqを使ってSQLを使いましたが、EF4を使って変更しようと思っていました。残念ながら、私のプロジェクトにEF4モデルを追加する手順を踏むと、私の関連は作成されません。ここで Entity Framework 4.0がSQL Server 2008 Express R2データベースから自分のアソシエーションをインポートしていません
は私の手順は次のとおりです。- 右
- を選択し 'ADO.NETエンティティデータモデル' ... VS2010のソリューションエクスプローラ
- [追加]をクリックします=>新しいアイテムに私のプロジェクトをクリックしてください
- 「データベースから生成」を選択してください
- SQL 2008 Express R2データベースに接続
- 「テーブル」アイテムを確認してください
- 複数形や生成されたオブジェクト名をsingularizeは
- にチェックされたモデルに外部キー列を含める[完了]をクリックします
- にチェックされます!
私のテーブルはすべて表示されていますが、それらの間には関連はありません。 'Linq to SQL Classes'アイテムを使用すると、私のアソシエーションはすべて期待どおりに生成されます。私がEF4セットアッププロセス中に2つの(関連する)テーブルだけを含めるようにしても、アソシエーションはまだ表示されません。
私は手動でEFデータモデルの設計を通じてassoicationsを追加しようとしましたが、プロジェクトをデバッグするときには、他のエラーを生成します。エラーは、指定したデータベースの関連付けがデータベースで正しく構成されていないことを示します。
UPDATE:私はそれがEF4のバグだと思っていましたが、制約/関連付けに何か不足しているように見えます。私は一からテーブルのいくつかを再構築し、それが役立つかどうかを見ます。私のdbはSQL CE 3.5から変換されたので、途中で何かが見逃されている可能性があります。
おかげ
EF4のバグではありません。私はこれをおそらく最後の2ヶ月で50回やったことがあり、うまくいきます。問題はデータベース(おそらく)です。あなたは、関連付けられている2つのテーブルのデータベーススキーマ/作成テーブルスクリプトを表示できますか? – RPM1984
データベースにFK制約が設定されていることは間違いありませんか? SQL Management Studioのダイアグラムにいくつかのテーブルを追加し、そこにテーブルがあるかどうかを確認してください。 – DamienG
正確に。 2つの新しいテーブルをPKで作成し、もう1つはFKで作成します。それらをEDMXに追加すると、関連がそこにあるはずです。 – RPM1984