Я спрашивал это давным-давно , но плохо сформулировал вопрос.
Я пытаюсь указать связь между двумя классами, которая не является простым отображением FK - это уже существующая база данных, а не то, что я буду генерировать из EF.
Итак, упрощенный вид на 2 объекта:
public class WidgetDetails
{
[Key]
public int WidgetId { get; set; }
public int WidgetNumber {get; set;}
// Some other props here..
[ForeignKey("WidgetId,WidgetNumber")]
public virtual WidgetProps WidgetProps { get; set; }
}
public class WidgetProps
{
[Key]
public int WidgetPropId { get; set; }
[Key, Column(Order = 0)]
public int WidgetId { get; set; }
[Key, Column(Order = 1)]
public int WidgetNumber { get; set; }
// Some props here...
}
Ключевым моментом здесь является то, что WidgetProps уже имеет свой собственный ПК. НО - поскольку я хочу иметь возможность указать, что WidgetProps связаны с WidgetDetails, используя составные WidgetId и WidgetNumber, я пытаюсь указать это в своем атрибуте ForeignKey.
ОДНАКО, это будет работать, только если я удалю атрибут [KEY] из WidgetProps.WidgetPropId - потому что в EF отношения отображаются с помощью ключей.
То, что я хочу сказать EF, это " Эй, это столбец PK, но это отношение не использует его, оно основано на этих 2 столбцах ".
Возможно ли это?
Надеюсь, это имеет смысл!