Выполнить сохраненный процесс без импорта в качестве функции - PullRequest
1 голос
/ 10 сентября 2011

ОБНОВЛЕНИЕ:

Я хочу выполнить хранимую команду proc или sql, которая повторно запускает два значения.

Я пытался сделать простой пример, используя ExecuteStoreCommand

Сначала я попытался отправить только чистый sql

var sqlReturn = repository.ExecuteStoreCommand("select count(*) as 'Count' FROM 
[mydb].[dbo].[mytable]"); //returns -1

но он всегда возвращался -1.

Тогда я создал сохраненный процесс

CREATE PROCEDURE TestCount

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    select count(*) as 'Count' FROM [mydb].[dbo].[mytable]
END
GO

Но когда я позвонил, я получил тот же -1 результат:

var spReturn = repository.ExecuteStoreCommand("exec dbo.TestCount"); //returns -1

Так есть ли способ сделать это в Entity Framework без импорта чего-либо в модель?

Код выше только для примера, но когда я узнаю, как получить значение из sql, запрос будет очень сложным, мне нужно будет вернуть count и некоторое другое вычисленное значение.

1 Ответ

3 голосов
/ 11 сентября 2011

Вам необходимо использовать ExecuteStoreQuery метод для получения значений.ExecuteStoreCommand вернет количество затронутых строк.Если вы выполните оператор Select, строки не будут затронуты.Проверьте Как: напрямую выполнять команды для источника данных для примеров.

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