Я использую Entity Framework для поддержки базы данных SQL Server. Мне нужно обновить строку, если она существует, и создать строку, если это не так. Довольно просто
Ниже приведен фрагмент кода:
var snapshot = new funnelSnapshot();
snapshot.Year = cvStudent.EffectiveDate.Year;
snapshot.Week = GetWeekNumber(cvStudent.EffectiveDate);
snapshot.Status = cvStudent.StatusDesc;
var week = context.funnelSnapshots
.Where(x => x.Year == snapshot.Year &&
x.Week == snapshot.Week &&
x.Status == snapshot.Status)
.FirstOrDefault();
if (week != null)
{
week.Count += 1;;
context.SaveChanges();
}
else
{
snapshot.Count = 1;
context.funnelSnapshots.Add(snapshot);
context.SaveChanges();
}
Таблица выглядит так:
![enter image description here](https://i.stack.imgur.com/xFoaT.png)
Когда код выполняется, строка обновляется, когда она найдена, однако строка также вставляется. Я не могу понять, почему строка вставлена.
Пожалуйста, помогите