Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将SQL update语句转换为LINQ to实体_C#_.net_Linq_Tsql_Entity Framework 6 - Fatal编程技术网

C# 将SQL update语句转换为LINQ to实体

C# 将SQL update语句转换为LINQ to实体,c#,.net,linq,tsql,entity-framework-6,C#,.net,Linq,Tsql,Entity Framework 6,在不编写整个foreach循环的情况下,是否有办法在LINQ中对实体进行更新/设置? 使用ef6.x 简单更新查询: UPDATE stop_detail SET cap_unique_id = b.Delivery_Location_Id FROM order_detail b WHERE Stop_Detail.CAP_Unique_Id IS NULL AND ((b.customer_id = 20 OR b.customer_id = 291) AND b.id = stop_

在不编写整个foreach循环的情况下,是否有办法在LINQ中对实体进行更新/设置? 使用ef6.x

简单更新查询:

UPDATE stop_detail 
SET cap_unique_id = b.Delivery_Location_Id 
FROM order_detail b 
WHERE Stop_Detail.CAP_Unique_Id IS NULL AND ((b.customer_id = 20 OR b.customer_id = 291)  AND b.id = stop_detail.order_detail_id AND stop_type = 1) 
所有上下文名称都相同。 我通常会写30行左右的C代码来完成这项工作,我知道一定有更好的方法

你是否可以和你是否应该是两件不同的事情

你可以这样做

来自

提示:你可能不应该知道你是否可以和你是否应该是两件不同的事情

你可以这样做

来自


提示:在EntityFramework中,您可能不应该

很好地更新实体的默认方法是查询您的目标集,然后在循环中修改查询到的实体,然后调用
SaveChanges
。除非使用第三方库,否则这是更新数据库的标准过程。它不应该是30行代码。理论上,query.ToList()1行。foreach 2行(或者您可以使用
list.foreach(t=>…)
作为1行),然后调用
SaveChanges
1行..谢谢..我就是这样做的…只是想知道是否有更好的方法。我夸大了30行,但是你知道我的意思…感谢EntityFramework中的响应EldarWell更新实体的默认方式是查询目标集,然后在循环中修改查询到的实体,然后调用
SaveChanges
。除非使用第三方库,否则这是更新数据库的标准过程。它不应该是30行代码。理论上,query.ToList()1行。foreach 2行(或者您可以使用
list.foreach(t=>…)
作为1行),然后调用
SaveChanges
1行..谢谢..这就是我一直在做的…只是想知道是否有更好的方法。我夸大了30行,但你知道我的意思…感谢Eldar的回复
using (var context = new BloggingContext())
{
    context.Database.ExecuteSqlCommand(
        "UPDATE dbo.Blogs SET Name = 'Another Name' WHERE BlogId = 1");
}