我想更新 ASP.NET Core 中的多行,但出现错误:
InvalidOperationException:找不到实体类型“EntityQueryable”。确保实体类型已添加到模型中。
这是我的代码:
var data = _db.UserTable.Where(a => a.CityIDn == selectedid);
foreach (var items in data)
{
await Task.Run(() =>
{
items.CityID = 2;
});
_db.Update(data);
await _db.SaveChangesAsync();
}
对多行尝试此操作:
var data = _db.UserTable.Where(a => a.CityIDn == selectedid).ToList();
foreach (var item in data)
{
item.CityID = 2;
_db.UserTable.Update(item);
}
await _db.SaveChangesAsync();
对于一条记录,请尝试这样:
var data = _db.UserTable.Where(a => a.CityIDn == selectedid).FirstOrDefault();
if(data != null)
{
data.CityID = 2;
_db.UserTable.Update(data );
await _db.SaveChangesAsync();
}
更新的内容应该是
items
,对我有用,你可以试试。
var data = _db.UserTable.Where(a => a.CityIDn == selectedid).ToList();
foreach (var items in data)
{
await Task.Run(() =>
{
items.CityID = 2;
});
_db.Update(items);
await _db.SaveChangesAsync();
}
现已在 EF Core 7.0 中提供,您可以进行批量更新:
await _db.UserTable.Where(a => a.CityIDn == selectedid).ExecuteUpdateAsync(
s => s.SetProperty(b => b.CityID, b => 2));