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();