繁体   English   中英

使用LINQ从数据库中的列表更新记录

[英]Updating records from a List in the database using LINQ

我有一个List<Office> ,其中模型Office包含以下内容:

int Id
string Name
int doorNumber
int officeType
int areaCode

我需要更新List<Office>的记录,其中该对象的所有areaCode元素都将更新为值10

        List<Office> OfficeList =   db.Offices.Where(x => x.officeType == 1).ToListAsync();

        listOfRecords = listOfRecords.Select(x => new Office
        {
            Id = x.Id,
            Name = x.Name,
            doorNumber= x.doorNumber,
            officeType=x.officeType,
            areaCode = 10,
        }).ToList();

        db.Offices.UpdateRange(listOfRecords);
            await db.SaveChanges();

我得到的错误是

Message =“无法跟踪实体类型'Office'的实例,因为已经跟踪了另一个具有相同{'Id'}的键值的实例。附加现有实体时,请确保只有一个具有给定键值的实体实例连接。

只需更新列表并保存更改即可:

List<Office> OfficeList = db.Offices.Where(x => x.officeType == 1).ToList();

OfficeList.ForEach(office => office.areaCode = 10);

db.SaveChanges();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM