sha*_*rif 2 entity-framework-core asp.net-core
通常在 SQL 中我们可以编写这个查询 UPDATE users SET isAdult = 1 WHERE age >18
我想对满足实体框架核心中某些条件的所有行应用一些编辑。
我写了这段代码,但出现错误
List<User> usersList = _context.Users.Where(u => u.age >18).ToList();
usersList.ForEach(a =>
{
a.isAdult = 1;
});
_context.Entry(usersList).State = EntityState.Modified;
_context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
错误是
System.InvalidOperationException:未找到实体类型“列表”。确保实体类型已添加到模型中。在 Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.GetOrCreateEntry(Object entity) 在 Microsoft.EntityFrameworkCore.DbContext.EntryWithoutDetectChanges[TEntity](TEntity entity) 在 Microsoft.EntityFrameworkCore.DbContext.Entry[TEntity](TEntity entity)
我做了这个更新,但我想知道这是否是最好的方法。
List<Users> usersList = _context.Users.Where(u => u.age >18).ToList();
usersList.ForEach(a =>
{
a.isAdult = 1;
_context.Entry(a).State = EntityState.Modified;
_context.SaveChanges();
});
Run Code Online (Sandbox Code Playgroud)
错误是因为列表未定义为 EF 实体。
最后,您不需要自己修改状态。
List<User> usersList = _context.Users.Where(u => u.age >18).ToList();
usersList.ForEach(a => { a.isAdult = 1; });
_context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2985 次 |
最近记录: |