у меня есть две моделиEF-код первого 1: * 1: 0..1 отношения между теми же моделями
public class A{
public AID { get; set; }
public int? MainBID { get; set; }
[ForeignKey("MainBID")]
public B MainB { get; set; }
}
public class B{
public int BID { get; set; }
public int? AID { get; set; }
[ForeignKey("AID")]
public virtual A Owner { get; set;}
}
Отношения Я хочу, чтобы смоделировать это А имеет много B. А может также иметь специально обозначенный B (основной B).
Однако путь она у меня настроить это имеет трудное время определения основного и с помощью свободно:
modelBuilder
.Entity<A>()
.HasOptional(x => x.MainB)
.WithOptionalDependent();
Это дает мне Множественность не действует в роли «A_MainB_Source» в отношениях «A_MainB». Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница множественности зависимой роли должна быть «*».
Я думаю, что моя проблема пытается описать EF, что это два отдельных отношения, а не одно и то же отношение, описанное спереди и назад. Может ли кто-нибудь вести меня в этом?
EDIT: Добавляет реальный пример
Я должен моделировать ряд учебных курсов (каждый называется «модуль»). Все «Модули» представляют собой веб-страницу, передающую информацию для этого конкретного курса. Каждый модуль может иметь множество «ресурсов» (загружаемых двоичных файлов).
Некоторые модули могут иметь Ресурс, который представляет ту же информацию, что и веб-страница. Как и в некоторых модулях, может быть ресурс, который можно распечатать и использовать вместо того, чтобы сидеть перед вашей машиной, просматривая веб-страницу. PDF-версия веб-страницы.
Итак, в приведенном выше описании каждый модуль имеет много ресурсов. Но каждый модуль может дополнительно иметь «специальный» ресурс, который нужно вызывать отдельно, а также везде, где используются другие ресурсы.
Я считал, что у меня есть флаг в Ресурсе, чтобы указать, что ресурс особенный в некотором роде, но это позволит 0 .. *, что не то, что я хочу. Я думал, что это может быть чище. Но до сих пор мне не удалось заставить это работать с EF.
Можете ли вы привести пример реальной жизни того, что вы пытаетесь сделать? (Я не могу понять отношения, A-> Многие B (ваша модель не выглядит так!) –
@LucianBumb см. Редактирование, которое я добавил. –