2009-05-28 10 views
3

MSのEntity Frameworkを使い始めました.MSはMVCプロジェクトに使用しています.MSは実際にそれを押しているようですが、いくつかの問題があります。私のデータベースには、複数のルックアップテーブルが外部キーを介して単一のテーブルに結びついています。エンティティの枠組みの中で私はこれらを1つにまとめようとしているので、私のモデルではこのデータのための単純な単一のビューがあります。しかし、これはデザイナーの視点からは不可能と思われます。明白な何かがありますか?この種のモデルを作成するためにedmxファイルを手動で編集できる方法はありますか?Entity Framework v1のルックアップテーブルの処理

答えて

3

現時点では、Entity Frameworkの外部キーとルックアップテーブルはPAINです。

LINQとEFはは、あなたのデータは、超簡単なっ作り、(...読み...今のところ)面上に、それはを更新するは簡単に見えますが、ルックアップテーブルで物事が困難取得

ルックアップテーブルをどのようにして1つのテーブルに "結合"するのかよく分かりません。各テーブルに異なるタイプの「参照エンティティ」が含まれている場合は、IMHOをEDMで個別に表す必要があります。私はあなたがレコードの外部キーをルックアップテーブルに更新する頭痛を抱えていると思います。それは頭痛だからです。

変更する外部キー値:Entity Frameworkのの

MyDBEntities _db = new MyDBEntities(); 
//get a Person 
MyDBEntities.Person person = (from p in _db.Persons 
         where p.Id = 1 
         select p).First(); 
// This sets the foreign key value in the Person table on the PersonType field 
person.PersonTypeReference = new EntityKey("MyDBEntities.PersonType", "PersonTypeId", 3) 

next release versionと呼ばれる新しい概念があります "FKの関連付けを。"これにより、EntityKeyを作成して設定するのではなく、外部キー値を直接設定するという正気が取り戻されます。

HTH。

+0

修正:.NET 3.5 SP1に同梱されている「リリースバージョン」が既にあります。 .NET 4.0に付属する別のバージョンがあります。 申し訳ありませんが、私はこの物の周りをぞっとしています。それはEFがまだ出荷されていないという誤った考えを永久に残しているからです) –

+0

ああそうです。これはかなり私の質問に答える。明確にするために、私が組み合わすことによって意味していたのは、本質的にモデルのビューを作成することでした(私はORMにはかなり新しいので、用語の一部がオフになる可能性があります)。私が扱っているデータベースは、非常に正規化された方法で構造化されているので、州、国、その他すべてのルックアップテーブルがあります。 –

+0

PersonTypeReferenceはおそらくEntityReferenceですか? EntityKeyは本当にEntityReferenceに割り当てられますか? –

関連する問題