实体框架:使用其他集合中的数据更新集合中的多个行

时间:2009-02-25 20:30:09

标签: entity-framework

我只是想实现这一行SQL:

UPDATE table1
SET table1.col = table2.col
FROM table2 INNER JOIN
     table1 ON table2.id = table1.id

如何使用实体框架以最少的往返次数完成这项工作? 我能想到的只是使用foreach循环遍历table2并在table1中更新它的相关条目,但这会导致很多往返,不是吗?

2 个答案:

答案 0 :(得分:1)

目前不幸的是no UPDATE in Entity SQL。解决方法是use regular SQL。如果没有这个,请通过一次加载两个表中所有必需的行并尽可能少地调用SaveChanges来将往返次数保持在最低限度。

答案 1 :(得分:0)

正如Craig所说,EF中没有对多个对象的内置支持,但您可以自己构建或使用以下链接作为参考。

http://geeks.ms/blogs/unai/archive/2008/07/17/multiple-entity-updates-with-entity-framework-ef-fetch-updates.aspx

http://efe.codeplex.com/

两者都使用相同的逻辑,但efe提供了包装器和更多功能。基本上干净的代码。 (像那样!)。我希望这会有所帮助。

Sanjay Zalke