Entity Framework: обновить несколько строк в наборе с данными из другого набора - PullRequest
2 голосов
/ 25 февраля 2009

Я просто хочу добиться этой строки SQL:

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

Как это можно сделать с помощью Entity Framework с минимальным количеством циклов? Все, что я могу придумать, это использовать foreach для циклического прохождения моего table2 и обновления связанной с ним записи в table1, но это приводит к целому ряду циклов, не так ли?

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

К сожалению, в Entity SQL в настоящее время нет. Обходной путь должен использовать обычный SQL . Без этого сведите количество обращений к минимуму, загружая все необходимые строки из обеих таблиц одновременно и вызывая SaveChanges как можно меньше раз.

0 голосов
/ 28 июля 2011

Как сказал Крейг, в ​​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 предоставляет оболочку и некоторые дополнительные функции. В основном чистый код. (Как это!). Я надеюсь, что это поможет.

Санджай Залке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...