0

外部キー/ナビゲーション プロパティをディスクリミネータとして使用して TPH 継承階層を作成しようとしていますが、正しく作成するのに問題があります。

次のエンティティがあります。

Person:
  Id (int)
  Name (nvarchar)
  PlaneId (int)
  CarId (int)

Car:
  Id (int)
  Name (nvarchar)

Plane:
  Id (int)
  Name (nvarchar)

withPlaneIdCarIdbeign FK。データベースに対応するテーブルがあり、VS2010 EF ウィザードを使用して概念モデルを作成できます。Personエンティティには、2 つのナビゲーションプロパティCarPlane.

ここで、Person から 2 つの型を派生させたいと思います。

Pilot (condition: PlaneId is not null)
Driver (condition: CarId is not null)

そこで、エンティティ Pilot を追加し、それを Person にマップするように指示し、 condition を追加しますPlaneId is not null。この時点で、Visual Studio (または edmgen だと思います) は、プロパティがPerson.PlaneId with 'IsNull=false' condition must be mapped.

私の次のステップは何ですか?私はさまざまなアプローチを試みましたが、うまくいかないようです。どんな洞察も大歓迎です。

4

1 に答える 1

2

そんなことはできません。Discriminator 列は null 非許容である必要があります

于 2010-08-23T15:36:55.373 に答える