代码之家  ›  专栏  ›  技术社区  ›  lascoff

使用实体框架更新行的问题

  •  0
  • lascoff  · 技术社区  · 7 年前

    我使用实体框架来维护一个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

    代码运行时,找到行时会更新行,但也会插入行。我不明白为什么要插入行。

    请帮忙

    0 回复  |  直到 7 年前