Отображение EF PK FK без скалярных свойств PK - PullRequest
0 голосов
/ 05 марта 2012

Можно ли определить составной внешний первичный ключ без определения скалярных свойств?

public class A 
{
  public virtual int AID { get; set; }
}

public class B
{
  public virtual int BID { get; set; }
}

public class CompoundKeyClass
{
  public virtual A AObject { get; set; }
  public virtual B BObject { get; set; }
}

Как сделать свойства AObject и BObject составного PK CompoundKeyClass без определения свойств скалярного идентификатора для A иB типов с использованием FluentAPI?

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Я подозреваю, что вы не можете; самое близкое к документации, которое я могу найти, это this :

KeyAttribute

KeyAttribute используется для указания того, что свойство / столбец является частью первичного ключа сущности и применяется только к скалярным свойствам.

Однако вы должны быть в состоянии назвать свойства внешнего ключа "_AID" и "_BID" и / или пометить их как [Browsable(false)]. Это должно гарантировать, что вы не можете использовать или даже увидеть их случайно.

1 голос
/ 06 марта 2012

Вы не можете. И AID, и BID должны быть в вашем CompoundKeyClass, отображенном как сложный первичный ключ, и каждый из них должен быть отображен как внешний ключ в связанную таблицу.

...