2012-03-21 19 views
0

example simplified class structureADO .NET Entity Frameworkの継承のモデリング

こんにちはすべて

私はあなたが上図のクラスで見ることができるように基本的には、エンティティフレームワークとhavinga問題だがは、2つのクラスがあり、抽象クラスでありますB & です。

各クラスには、必須ではありませんが、データベース設計の関係構造の一部であるIDがあります。

私はVS 2008継承の私のデータベースのモデルと、モデルEFにツールを使用して生成しようとしています。モデルは正常に生成されますが、の外部キーはまだモデルダイアグラムに存在します。私はそれらを削除し、それらを正しい継承で置き換えます、私はまた、エンティティセット名を同じに設定します。

これは私の問題が始まるところです。

クラスが正常に動作していないようで、関連が機能していませんか?

FKが削除されましたか、それとも正しい場所に残して継承を使用する必要がありますか?

私は私のビジネス層にを継承するクラスBCを必要としています。

モデルが正しくないように見えます。私はこのモデルを動作させる上での助けになると思います。

+0

テーブル単位またはタイプごとの継承ですか?データベースの最初のシナリオですか? –

+1

"id"フィールドはテーブルのプライマリキーですか?** A **のPK、** B **&** C **のFKですか? – CodingGorilla

+0

@DenisAgarev私はA、B&Cのためのテーブルを持っていると私はテーブルあたりのタイプを信じる – Deviland

答えて

1

私は、テーブルに関連する別個のPKとFKがあることが問題だと思います。 EFは、子テーブルには、PKとFKの両方である単一の「id」列が子テーブルにあると想定しています。ここで

は、私がしているデータベースの例のスナップショットです(これは、EFによって生成されましたが、あなたは私が話しているか見て):

Example

あなたがここに表示されますことJobsはベースであり、他の2つはJobsに由来します。 のIdフィールドがPKであり、他の2つのテーブルでIdフィールドがJobsに戻るPKとFKの両方であることがわかります。

私が言ったように、このモデルはEF(モデルファースト)によって生成されましたが、私はこれがEFのものを見たいと思っているので、あなたのデータベースはEFの継承構造に適合しないと思います。

2

のPKに対してFKを持ってはいけません。

継承は、B.IdがPKであり、FKがA.Idであることを前提としています。

関連する問題