Entity Framework: обновить несколько строк в наборе данными из другого набора
Я просто хочу достичь этой строки SQL:
UPDATE table1
SET table1.col = table2.col
FROM table2 INNER JOIN
table1 ON table2.id = table1.id
Как это можно сделать с помощью Entity Framework с минимальным количеством циклов приема-передачи? Все, о чем я могу думать, - это использовать foreach для циклического перебора table2
и обновления соответствующей записи table1
, но это приводит к большому количеству циклов туда и обратно, не так ли?
Ответов (2)2
К сожалению, в настоящее время в Entity SQL нет ОБНОВЛЕНИЯ . Обходной путь - использовать обычный SQL . Без этого сократите количество циклов обработки до минимума, загрузив все необходимые строки из обеих таблиц одновременно и вызывая SaveChanges как можно меньше раз.
Как сказал Крейг, в EF нет встроенной поддержки нескольких объектов, но вы можете создать свой собственный или использовать следующую ссылку в качестве ссылки.
Оба используют одну и ту же логику, но efe предоставляет оболочку и некоторые дополнительные функции. В основном чистый код. (Как это!). Я надеюсь, это поможет.
Санджай Залке