Я знаю, что это повторяющийся вопрос, и я знаю, что это невозможно, если в таблице «в середине» есть дополнительные свойства.EF От многих до многих отношений с дополнительными свойствами
У меня возникла идея, как получить эффект отношения m: N вместо 1: n-n-1, но я хотел бы услышать другие мысли.
Если у меня есть три объекта, A, B и AB, где AB делает возможным отношение A: B и обладает дополнительными свойствами.
Используя Databasefirst подход, я думал сделать частичный класс A и B.
public partial Class A
{
public IEnumerable<EntityObject> Bs
{
get
{
return this.Select(p=>p.AB.B);
}
set { //... }
}
}
Может что-то подобное возможно.
Просто рисовать в моей голове. Я сейчас в отпуске и не имею компьютера, поэтому это не проверено, а просто написано на моем мобильном телефоне.
Я вижу, что это может быть проблемой после удаления или отсоединения контекста, а также с включением в нетерпеливый подход к загрузке.
Любые мысли?
Почему вы не разлагаете много-много-много, которые вы получаете автоматически с помощью 'ICollection' в каждом объекте и создаете свой собственный средний объект, который имеет прямую ссылку на каждый из других объектов плюс дополнительные свойства? Я делал это только для m-2-m, прежде чем понял, что EF может сделать это за вас. –
Я не уверен, что вы имеете в виду. В настоящее время у меня есть объекты A-AB-B. Не могли бы вы объяснить более подробно то, что вы имеете в виду? – user853710
Вы можете вручную определить объект AB, который имеет одну ссылку на A и B (таким образом, генерируя m-2-m). A будет иметь список AB, а B будет иметь список AB. Затем вы можете поместить то, что вам нравится, на AB, поскольку вы контролируете сущность. Это с точки зрения кода. –