C # Entity Framework выдает ошибку на ExecuteFunction - PullRequest
0 голосов
/ 27 ноября 2018

Быстрое обновление, я проходил построчно, видя, что «оценка функции требует запуска всех потоков».

Попытка выполнить хранимую процедуру с использованием Entity Framework в C #.Мне удалось сделать это для оператора SELECT внутри хранимой процедуры, но не так сильно с UPDATE.

Я проверил следующее:

  • Хранимая процедура работает в SQL Server со значениями, которые я передаю ей вручную
  • Хранимая процедура ожидает bigint какПараметры и, следовательно, входные данные отправляются как INT64.

Метод, который, как я предполагаю, EF, построенный на основе хранимой процедуры, проходит через все части, кроме оператора return, где я получаю довольно общую ошибку дословного исключения.

Есть мысли по этому поводу?Я могу предоставить немного хранимой процедуры и строку метода:

 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SP_HERE", int64, int64, int64, int64);
    }

Вот хранимая процедура:

CREATE PROCEDURE some_SP
    @var1 bigint,
    @var2 bigint,
    @var3 bigint,
    @var4 bigint 
AS
BEGIN
    --SET NOCOUNT ON;

Затем различные операторы обновления, которые я вставил, былиоригинальное создание.

Любые подсказки на макушке помогут вам.Не уверен, что вызывает это, и копание в исключении, кажется, не дает ничего полезного.

Спасибо, ребята!

1 Ответ

0 голосов
/ 27 ноября 2018

Возврат @@ ROWCOUNT из хранимой процедуры.Скорее всего, проблема, с которой вы столкнулись, связана с несоответствием между типом, возвращаемым из сохраненного процесса, и возвращаемым значением, ожидаемым методом ExecuteFunction.

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