2009-08-16 3 views
1

私はテーブルEmployeesを持つEntity Frameworkモデルを持っています。各従業員には、同じ従業員テーブルの別のレコードを指すSupervisorIdがあります。私のDB設計から推論されたエンティティモデルVSはうまく見えましたが、自己参照付きのテーブルのレコードを更新または挿入できませんでした。スーパーバイザテーブルのEmployeesテーブルのビューを使用することにしましたが、データベースのビューにFK制約を追加できません。 EFデザイナーでこれを行う方法と同じ効果を得る方法はありますか?エンティティモデルにDBに追加せずにFK制約を追加するにはどうすればよいですか?

最悪の場合、私はFK制約をスキップできますが、標準またはカスタムコンボボックスを使用して実装する方法を知りたいので、編集時に従業員フォームにはスーパーバイザーの選択肢があります。

答えて

2

エンティティモデルにデータベースに追加することなく「外部キー」を追加することはできません.FKはテーブルにリンクするデータベース設計構造であり、ストレージモデルに追加する必要があります物理的なデータベースモデル)をEFに入れますが、それはacutalデータベースに存在するものと1:1でなければなりません。

しかし、あなたの概念モデルにアソシエーションを追加することができます。これは、ではないの部分がデータベースに1:1で結ばれていますが、ドメインモデルを表しています。これを追加するには、EDMXデザイナのエンティティを右クリックし、コンテキストメニューから[関連付けを追加]を選択します。

alt text http://i32.tinypic.com/2k51tg.jpg

これは、あなたがリンクするものを2つのエンティティ選ぶことが可能な「協会を追加」ダイアログで、どのようにポップアップ表示されます。これにより

alt text http://i25.tinypic.com/2jbmjx2.jpg

を、あなたは追加することができるはずですEFモデルの概念的側面のエンティティ間の関連性、したがって関係性。基盤となるデータベーススキーマには触れません。

マルク・

+0

おかげ@Marcが、どのように私は、例えば、実際のオブジェクトとの関連のナビゲーションプロパティを関連していますあなたの例では、どのように私は契約のエントリをポップするのですか? – ProfK

+0

ええ、申し訳ありません - それは動作していないようです - それはデータベース内のFK関係にマップされていることを依然として主張しています:-(私は概念モデルだけでその関連付けを解決できることを望んでいました - - ( –

+0

+1試してみるが、私の問題は解決していないので、申し訳ありませんが、近いが、受け入れない、hehe。 – ProfK

関連する問題