Структура сущности обновляет отношения многие-многие: виртуальные или нет

Я использую EF4 (не с первым кодом) с года, так что я не особо разбираюсь в этом. Я сомневаюсь в использовании отношения "многие ко многим" при сохранении и обновлении.

Я где-то читал в stackoverflow (я больше не могу найти URL), что единственное решение - обновить существующее отношение «многие ко многим» - не объявлять «виртуальное» свойство; но, если я сделаю так, движок не сможет загружать данные как при простой загрузке.

Не могли бы вы объяснить мне причину? Otherwire, не могли бы вы помочь мне найти несколько интересных документов по этой теме?

thx

22
задан frabiacca 15 January 2012 в 12:32
поделиться

1 ответ

Ответ Slaumas действительно хорош, но я хотел бы добавить, как вы можете вставить отношение «многие ко многим» без предварительной загрузки объектов из базы данных. Если вы знаете идентификаторы для подключения, то дополнительный вызов базы данных является излишним. Ключ должен использовать Attach().

Подробнее о приложении:

https://stackoverflow.com/a/3920217/3850405

public class ConnectBToADto
{
    public Guid AId { get; set; }
    public Guid BId { get; set; }
}

public void ConnectBToA(ConnectBToADto dto)
{
    var b = new B() { Id = dto.BId };
    Context.B.Attach(b);

    //Add a new A if the relation does not exist. Redundant if you now that both AId and BId exists     
    var a = Context.A.SingleOrDefault(x => x.Id == dto.AId);
    if(a == null)
    {
        a = new A() { Id = dto.AId };
        Context.A.Add(a);
    }

    b.As.Add(a);
}
1
ответ дан 29 November 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: