1

Я довольно новичок в EF и MVC. Но мне удалось создать строительные леса с MCV5 и представлениями. Я понимаю, что существует различие в концепции между веб-формами и EF. Но возможно ли мне выполнить хранимую процедуру, созданную в SSMS. Я хочу, чтобы у вас была веб-страница с двумя текстовыми полями, которые берут в двух параметрах, которые требуется хранимой процедуре, причем оба параметра являются строками, а затем отображают результат в webgrid. С этим можно справиться с первым кодом EF и MVC?Хранимые процедуры с ef 6 и кодом сперва

код для моей хранимой процедуры:

CREATE PROCEDURE [dbo].[sp_FindRoutes] 

@DepCity nvarchar(max), 
@ArvCity nvarchar(max) 

AS 

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

SELECT dbo.Airlines.AirlineName, dbo.Routes.DepCity, dbo.Routes.ArvCity, dbo.Routes.FlightNr, dbo.AirlineRoutes.Fare, dbo.AirlineRoutes.AircraftAllocated 
FROM dbo.Routes INNER JOIN 
     dbo.AirlineRoutes ON dbo.Routes.RouteId = dbo.AirlineRoutes.RouteId INNER JOIN 
     dbo.Airlines ON dbo.AirlineRoutes.AirlineId = dbo.Airlines.AirlineId 
     WHERE dbo.Routes.DepCity LIKE @DepCity AND dbo.Routes.ArvCity LIKE @ArvCity; 
GO 

ответ

0

Допустим, ваш SP, как это (Просто простая версия вашего SP).

CREATE PROCEDURE [dbo].[sp_FindRoutes] 
    @DepCity string 
    AS 
    BEGIN 
    SET NOCOUNT ON; 

    SELECT dbo.Airlines.AirlineName, dbo.Routes.DepCity, dbo.Routes.ArvCity 
    FROM dbo.Routes 
    WHERE dbo.Routes.DepCity= @DepCity 
    END 

Вы должны создать объект, который имеет те же имена свойств в качестве результатов, возвращаемых хранимого procedure.It как это.

public class RouteForAirline 
     { 
      public string AirlineName { get; set; } 

      public string DepCity { get; set; } 

      public string ArvCity { get; set; } 

     } 

Затем позвоните по номеру SP, как показано ниже.

Примечание: Вы можете поместить это на class file, если у вас есть доступ к DatabaseContext().

using(var context = new DatabaseContext()) 
     { 
     var depCityParameter = new SqlParameter("@DepCity", "colombo"); 
     var arvCityParameter = new SqlParameter("@ArvCity", "matara"); 

     var results = context.Database.SqlQuery<RouteForAirline>("sp_FindRoutes @DepCity, @ArvCity",depCityParameter,arvCityParameter).ToList(); 
     } 

Подробнее об этом можно здесь, используя указанные ссылки.

Code First Insert/Update/Delete Stored Procedures

Stored Procedures with Multiple Result Sets

+0

Спасибо, вызов зр о чем я и понял, но как бы код, если бы я должен был передать ему оба параметра. – user2371684

+0

И вызов самого вызова, где находится? Является ли он в том же файле класса или в моем файле dbcontext? – user2371684

+0

Я обновил ответ. Пожалуйста, см. Это. – Sampath

Смежные вопросы