c# - 使用 LINQ 更新记录

标签 c# linq entity-framework

我需要在表格中为部分行设置一个值。在 SQL 中,我会这样做:

UPDATE dbo.Person SET is_default = 0 WHERE person_id = 5

有没有办法在 LINQ 中执行此操作?

我目前使用:

var result = (from p in Context.People....)

符号。

有没有我可以使用的更新方法?或者我是否必须获取所有记录,然后在 Foreach 中逐一更新它们?

如果可能的话,这是最有效的方法吗?

(from p in Context.person_account_portfolio where p.person_id == personId select p)
   .ToList()
   .ForEach(
       x =>
       x.is_default =
       false);

最佳答案

这个效果最好。

(from p in Context.person_account_portfolio 
 where p.person_id == personId select p).ToList()
                                        .ForEach(x => x.is_default = false);

Context.SaveChanges();

关于c# - 使用 LINQ 更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832684/

相关文章:

c# - 了解 WPF 中提供的 DispatcherPriority 枚举的真实行为

c# - 带有私钥加密的公钥加密

c# - 卡住多个工作表中的 Pane C#

c# - 与日期列表进行比较

c# - 我有一个 WPF Listview,我想根据复选框的值显示重复值或不显示重复值

asp.net - 如何使用EntityFramework代码优先迁移来播种数据

c# - 如何以编程方式添加 DataTrigger

c# - 我怎样才能从一个非类型化的表达式返回到一个类型化的表达式?

asp.net - 数据直接绑定(bind)到商店查询

c# - 无法转换类型为 'System.Data.Objects.MaterializedDataRecord' 的对象