更新表中的两个字段

时间:2016-04-13 15:12:55

标签: entity-framework asp.net-mvc-4 c#-4.0

我有一个List,想要更新表中的两个字段。 这两个字段是使用CatId的CustOrderNumber和CustomerRefnumber 识别行。

如何根据其ID更新这两个字段,以便提高效率?

这是模型

            public class Catalog
            {
                public Int32 CatId { get; set; }
                public string Ischecked { get; set; }
                public string CustOrderNumber { get; set; }
                public string CustomerRefnumber { get; set; }
            }

以下是处理集合的方法

            public List<Catalog> WriteToDB(List<Catalog> objCat)
            {
                DataCollectEntities _objDataCollect = new DataCollectEntities();

                foreach( var item in objcat)
                {


                }

            }

1 个答案:

答案 0 :(得分:0)

您需要从数据库获取传递给您的方法的项目的目录。更新每个项目的属性值并将其保存回来。

public List<Catalog> WriteToDB(List<Catalog> objCat)
{
    var ids = objCat.Select(s=>s.CatId);

    var db = new DataCollectEntities();
    var catalogList= db.Catalogs.Where(s=>ids.Contains(s.CatId)).ToList();

    foreach( var item in catalogList)
    {
      var c= objCat.FirstOrDefault(x=>x.CatId==item.Id);
      if(c!=null)
      {
        item.CustomerRefnumber = c.CustomerRefnumber;
        item.CustOrderNumber = c.CustOrderNumber ;
      }
    }
    db.SaveChanges();
}

执行的SQL查询数量?

1 select语句,用于从db获取目录。

N 更新语句,用于更新N是您要更新的记录数(目录)的每条记录

因此,如果您尝试更新3个目录,此代码将达到db 1 + 3 = 4 次。