EF Core - "сопоставить" локальные объекты с объектами базы данных - PullRequest
0 голосов
/ 25 апреля 2020

возможно я просто не знаю правильных ключевых слов, но я действительно не могу найти решение для моей проблемы.

Я десериализирую XML инвойс для объекта RawInvoice. Затем я создаю объект Invoice и копирую свойства из RawInvoice в Invoice (из-за разной структуры).

Теперь мне нужно «сопоставить» или «связать» некоторые Article элементы с уже существующими предметы в базе данных. Существует также проблема в том, что десериализованный объект Article не имеет всех свойств, как в базе данных, у него есть только свойство Name.

Моя единственная идея сейчас для l oop, как

for (int i = 0; i < rawInvoice.Items.InvoiceItemContents.Count; i++)
{
    invoice.InvoiceItems[i].Article = _invoiceContext.Articles.Where(a => a.Name == invoice.InvoiceItems[i].Article.Name).FirstOrDefault();
}

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

Моя вторая идея заключалась в том, чтобы MySQL вызывать триггер до вставки, но я все равно предпочел бы обработать это в коде.

Итак, есть ли способ сделать это просто? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...