Как получить записи, затронутые обновлением хранимой процедуры в LINQ to SQL - PullRequest
0 голосов
/ 18 августа 2010

Я выполняю хранимую процедуру обновления из LINQ to SQL, и мне нужно знать, какие записи затрагиваются после вызова обновления.

Я использую dbml designer для генерации кода LINQ.

Ответы [ 4 ]

1 голос
/ 15 сентября 2010

Я не пробовал ни одного из ответов и не знаю, какой из них правильный. Я вернул @@rowcount как набор результатов.

1 голос
/ 18 августа 2010

Вы пробовали DataContext.GetChangeSet ? Например, это возвращает количество обновлений:

linqDbContenxt.GetChangeSet().Updates.Count
0 голосов
/ 18 августа 2010

Вы можете создать еще один частичный класс для каждого типа объекта в вашем dbml и подключить к различным доступным методам, таким как OnCreated и т. Д. Вы можете создать свой собственный при обновлении и вести журнал элементов, измененных, созданных или удаленных, когда они произошли. фактические объекты

0 голосов
/ 18 августа 2010

Один из способов сделать это - записать строки, обновленные в таблицу, а затем снова прочитать таблицу с помощью Linq-to-SQL:

UPDATE dbo.YourTable
SET columns = values
OUTPUT INSERTED.ID, INSERTED.column1, INSERTED.column2   -- etc. whatever you need
INTO dbo.OutputTable(.....) 

Конечно, вам нужночто dbo.OutputTable перед рукой.После выполнения этой операции ваша выходная таблица будет содержать значения, которые были обновлены.Вы можете читать эту таблицу как любую обычную таблицу в Linq-to-SQL.

...