Базовая структура сущности отношения один-ко-многим - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть две модели DestinationEntity и SourceEntity, то, что я хочу, мне нужно сначала, чтобы получить информацию о месте назначения, после этого мне нужно получить информацию об источнике, в котором я хочу выбрать несколько мест назначения и сохранить обе, имеющие отдельную запись CRUD, как могу ли я достичь этого

источник может иметь несколько адресатов, а пункт назначения может иметь один источник

вот мои сущности

public class DestinationEntity
{
public int ID {get; set;}
public string DName {get; set;}
public string DPath {get; set;}

public SourceEntity source {get; set;} 
}

public class SourceEntity
{
public int ID {get; set;}
public string SName {get; set;}
public string SPath {get; set;}

public ICollection<DestinationEntity> Destinations {get; set;} 
}

1 Ответ

0 голосов
/ 10 ноября 2018

Создание и удаление довольно очевидны, обновление - хитрая задача. В основном, есть три подхода. Поскольку каждый пункт назначения ДОЛЖЕН иметь один и только один источник.

Во-первых, удалите все пункты назначения, а затем снова добавьте их в источник. Это удаляет «осиротевшие» пункты назначения и является самым простым и грубым методом.

Во-вторых, пользовательский интерфейс должен сообщать, какие пункты назначения добавлены, а какие удалены. ИЛИ, определите его самостоятельно, изучив FK (null = new) на входе и сравните существующие с сохраненными значениями, удалив «удаленные» пункты назначения. Хитрее.

В-третьих, используйте формат JSONPatchDocument, который дает план действий по обновлению сохраненных объектов.

...