Как перезаписать данные в базе данных? Asp.net
- Этот код сохраняет мои данные в базе данных
- Это приложение записывает время, потраченное на каждый день месяца
- Они пишут в базу данных на sql server, используя EF
- Проблема только в том, что я хотел бы их переписать, а не писать больше
Контроллер:
List<Karta_Model> objNextKartaModel = new List<Karta_Model>(); for (int i = 0; i < liczbaDni; i++) { var modelNext = new Karta_Model() { Login = userName, Rok = numerRoku, Miesiac = numerMiesiaca, DzMiesiaca = modelKarta.Model1[i].DzMiesiaca.Value, DzTygodnia = modelKarta.Model1[i].DzTygodnia, Rozpoczecie = modelKarta.Model1[i].Rozpoczecie .... }; objNextKartaModel.Add(modelNext); await _ecpContext.Karta.AddRangeAsync(objNextKartaModel); await _ecpContext.SaveChangesAsync(); }
'Id' in в sql server:
> [Id] [int] IDENTITY(1,1)
- Мне пришла в голову идея извлечь идентификатор первой строки из ранее сохраненной базы данных
var nrIdBase = _ecpContext.Karta.FirstOrDefault(f => f.DzMiesiaca == 1 && f.Miesiac == numerMiesiaca && f.Rok == numerRoku && f.Login == userName).Id;
- но я не знаю, как им пользоваться
Что я уже пробовал:
- Я пробовал что-то в этом роде
for (int i = 0; i < liczbaDni; i++) { var modelNext = new Karta_Model() { Id = nrIdBase +i, Login = userName, Rok = numerRoku, Miesiac = numerMiesiaca, DzMiesiaca = modelKarta.Model1[i].DzMiesiaca.Value, DzTygodnia = modelKarta.Model1[i].DzTygodnia, Rozpoczecie = modelKarta.Model1[i].Rozpoczecie .... }; }
Ошибка:
> InvalidOperationException: экземпляр сущности типа 'Karta_Model' не может быть отслежен, поскольку другой экземпляр с тем же значением ключа для {'Id'} уже отслеживается. При присоединении существующих сущностей убедитесь, что присоединен только один экземпляр сущности с заданным значением ключа. Рассмотрите возможность использования DbContextOptionsBuilder.EnableSensitiveDataLogging' позволяет видеть конфликтующие Ключевые значения.
- у кого-нибудь есть идеи, как это сделать?
- Как перезаписать сохраненные данные один раз?