我有一个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'}键值的实例是 已经被追踪。附加现有实体时,请确保 仅附有具有给定键值的一个实体实例。
答案 0 :(得分:0)
只需更新列表并保存更改:
List<Office> OfficeList = db.Offices.Where(x => x.officeType == 1).ToList();
OfficeList.ForEach(office => office.areaCode = 10);
db.SaveChanges();