Запустите хранимую процедуру для заполнения существующей таблицы из контроллера MVC - PullRequest
0 голосов
/ 06 июня 2019

Следующий код SQL отлично работает в базе данных [QTY].он удаляет все строки в [Table1], затем запускает хранимую процедуру [test] и вставляет результат в [Table1].

Я хочу иметь возможность запустить этот код из контроллера MVC.Как мне этого добиться?Спасибо.

USE [QTY]
GO

DECLARE @return_value int

Delete from Table1

INSERT INTO Table1

EXEC    @return_value = [dbo].[test]
        @Month = N'M4',
        @Forecast = '2019-04-30'

SELECT  'Return Value' = @return_value

GO

1 Ответ

0 голосов
/ 06 июня 2019

Попробуйте использовать метод FromSql, который позволяет передать команду SQL, которая будет выполнена для базы данных, чтобы вернуть экземпляры типа, представленного DbSet.

// Format string
var author = db.Authors.FromSql("SELECT * From Authors Where AuthorId = {0}", id).FirstOrDefault();
// String interpolation
var author = db.Authors.FromSql($"SELECT * From Authors Where AuthorId = {id}").FirstOrDefault();

DbContext предоставляет свойство Database, которое включает метод с именем ExecuteSqlCommand.Этот метод возвращает целое число, указывающее количество строк, на которые влияет оператор SQL, переданный ему.

using(var context = new SampleContext())
{ 
   var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)";
   var name = new SqlParameter("@CategoryName", "Test");
   context.Database.ExecuteSqlCommand(commandText, name);
}

Вы можете потратить некоторое время на изучение Выполнение необработанных запросов SQL

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