Сначала я использую код EF для управления своими данными. У меня две модели, ElectricitySite
и ElectricitySiteSplit
.
ElectricitySite
содержит List<ElectricitySiteSplits> ElectricitySiteSplits
, это отношение один ко многим.
Я пытаюсь написать свой метод обновления для слоя репозитория, который будет работать с обеими таблицами, пока у меня есть:
public void UpdateElectricitySite(ElectricitySite updatedElectricitySite)
{
var dbElectricitySite = GetElectricitySite(updatedElectricitySite.ElectricitySiteId);
_context.ElectricitySites.Attach(updatedElectricitySite);
_context.Entry(updatedElectricitySite).State = EntityState.Modified;
_context.SaveChanges();
}
Я получаю следующую ошибку, когда я нажимаю кнопку Сохранить:
Не удалось присоединить сущность типа MySolution.Repo.ElectricityModels.ElectricitySiteSplit, поскольку другая сущность того же типа уже имеет такое же значение первичного ключа. Это может произойти при использовании метода «Прикрепить» или при установке состояния объекта на «Без изменений» или «Изменение», если какие-либо объекты на графике имеют конфликтующие ключевые значения. Это может быть связано с тем, что некоторые объекты являются новыми и еще не получили значения ключей, сгенерированные базой данных. В этом случае используйте метод «Добавить» или состояние объекта «Добавлено», чтобы отслеживать график, а затем установите состояние не новых объектов на «Без изменений» или «Изменено» в зависимости от ситуации.
Я думаю, это потому, что я не прикрепил свой объект ElectricitySiteSplit
, однако, если я добавлю это ниже моего приложения ElectricitySites:
_context.ElectricitySiteSplits.Attach(updatedElectricitySite.SiteSplits);
Я получаю эту ошибку:
Код серьезности Описание Ошибка состояния подавления строки файла проекта CS1503 Аргумент 1: невозможно преобразовать System.Collections.Generic.List в UtilityBilling.Repo.ElectricityModels.ElectricitySiteSplit.
Как мне обрабатывать обновление таблицы ElectricitySiteSplits
, которое содержится в updatedElectrcitiySite.SiteSplits
в виде списка.
FYI - я уже посмотрел здесь: