Asp.net saveChangesSync()不更新数据库
所以,我有这个更新方法Asp.net saveChangesSync()不更新数据库,asp.net,database,entity-framework,Asp.net,Database,Entity Framework,所以,我有这个更新方法 var loanedAsset = await this.DB.Asset .AsNoTracking() .Where(Q => model.AssetIds.Contains(Q.AssetId)).ToListAsync(); foreach (var item in loanedAsset) { item.IsLoanedBy
var loanedAsset = await this.DB.Asset
.AsNoTracking()
.Where(Q => model.AssetIds.Contains(Q.AssetId)).ToListAsync();
foreach (var item in loanedAsset)
{
item.IsLoanedBy = model.EmployeeId;
await DB.SaveChangesAsync();
}
但是,数据库中的值没有更新。它仍然是空的
我确信我的项目
或资产不为空,因为我已经手动检查了它。即使在foreach
内部,也会分配项.IsLoanedBy
,但唯一的问题是,它不会更新数据库
>有人能帮助我吗?
首先,你应该考虑在性能循环中for for循环之后做SaveCaseSeaSc,另一个问题是AsNoTraskIn(),这会导致EF停止跟踪实体,所以当你更新它时,这些变化不会被跟踪,并且不会被应用,最好的办法是:
var loanedAsset = await this.DB.Asset
.Where(Q => model.AssetIds.Contains(Q.AssetId)).ToListAsync();
foreach (var item in loanedAsset)
{
item.IsLoanedBy = model.EmployeeId;
this.DB.Asset.Update(item);
this.DB.Entry(item).State=EntityState.Modified;
}
await DB.SaveChangesAsync();