Member 14713380 Ответов: 1

Как перезаписать данные в базе данных? 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' позволяет видеть конфликтующие Ключевые значения.




- у кого-нибудь есть идеи, как это сделать?

- Как перезаписать сохраненные данные один раз?

1 Ответов

Рейтинг:
0

Gerry Schmitz

Вы читаете запись или записи (которые ранее были "сохранены"), обновляете любые поля, а затем сохраняете:

c# - Как обновить запись с помощью Entity Framework 6? - переполнение стека[^]