Вернуть @@ RowCount в LINQ to SQL INSERT - PullRequest
2 голосов
/ 27 августа 2010

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

BEGIN
    INSERT INTO tblCMOEncounterHeader (
        submitter_organization_id, 
        submission_date, 
        begin_posting_date,
        end_posting_date, 
        number_of_records_transmitted) 
    VALUES (
        @submitter_organization_id,
        @submission_date,
        @begin_posting_date,
        @end_posting_date,
        @number_of_records_transmitted)

    RETURN @@ROWCOUNT
END

В частности, что возвращает @@ROWCOUNT при партнерстве сINSERT?Как бы я сделал то же самое в LINQ?

Ответы [ 2 ]

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

Поскольку вы вставляете только одну строку, она должна вернуть 1. (Если бы вы использовали INSERT INTO ... SELECT FROM ... для вставки нескольких строк, это было бы выше)

В LINQ перетащитесохраненный процесс из обозревателя сервера, на диаграмму LINQ (так же, как вы сделали для таблиц).Это создаст метод в DataContext для обработанного процесса.(Возможно, вам придется открыть панель «Метод» из контекстного меню)

1 голос
/ 27 августа 2010
@@ROWCOUNT 

Возвращает количество строк, затронутых последним оператором

* MSDN 1007 *

В вашем случае он всегда вернет 1, я думаю, или выдаст ошибку в случае нарушения ограничения и т. Д.

Ваш код LINQ to SQL должен определенно return (numsRowsAffected > 0);, то есть логическое значение или что-то подобное

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