gpt4 book ai didi

asp.net-core - 如何使用 Entity Framework 核心更新与普通 SQL 更新查询相同的多条记录列表?

转载 作者:行者123 更新时间:2023-12-02 19:56:23 24 4
gpt4 key购买 nike

通常在 SQL 中,我们可以编写此查询 UPDATE users SET isAdult = 1 WHERE age >18

我想对 Entity Framework 核心中满足某些条件的所有行应用一些编辑。

我写了这段代码,但出现了错误

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

错误是

System.InvalidOperationException: The entity type 'List' was not found. Ensure that the entity type has been added to the model. at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.GetOrCreateEntry(Object entity) at Microsoft.EntityFrameworkCore.DbContext.EntryWithoutDetectChanges[TEntity](TEntity entity) at 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();
});

最佳答案

错误是因为列表未定义为 EF 实体。

最后,你不需要自己修改状态。

List<User> usersList = _context.Users.Where(u => u.age >18).ToList(); 
usersList.ForEach(a => { a.isAdult = 1; });
_context.SaveChanges();

关于asp.net-core - 如何使用 Entity Framework 核心更新与普通 SQL 更新查询相同的多条记录列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com