1

2 つのテーブル間で Entity Framework を継承しようとしています。

親:

ParentTable
  Id: int primary key
  CustomAttribute: int

子供:

ChilTable
  Id: int primary key (not the same one as the parent, Child specific Id)
  TCId: int foreign key to parent
  SomeInformation: String

何らかの理由で、ParentTable と ChildTable の両方の主キーに「Id」という名前を付け続けたいと考えています。子テーブルの別の名前「CId」でカスタム プロパティを作成したので、EntityFramwork を気にする必要はありません。

ここに画像の説明を入力

Child1 テーブルのマッピングは次のとおりです。

ここに画像の説明を入力

しかし、モデルを「検証」すると、VS2010 は次のように言います...:

Error 3002: Problem in mapping fragments starting at line 103:Potential runtime violation of table Child1's keys (Child1.Id): Columns (Child1.Id) are mapped to EntitySet Parents's properties (Parents.CId) on the conceptual side but they do not form the EntitySet's key properties (Parents.Id).

基本的に、Entity Framework は、テーブルの主キーをエンティティのキ​​ーではないプロパティにマップするという事実に問題があることを理解していますが、継承をどのように使用するのでしょうか?

「子」テーブルに主キーがない場合にのみ継承が許可されますか? 主キーを「単純なキー」にする必要がありますか?

前もって感謝します...

4

1 に答える 1

1

EFは、子のIdPKが親のFKでもあることを期待しています。Child.IdPKとFKの両方もそうです。

于 2012-07-10T14:31:58.173 に答える