Хранимая процедура с Entity Framework

У меня есть одна хранимая процедура с различными действиями в ней. Для Eg-Insert, select, update все находятся в одной хранимой процедуре, и я выполняю ее, используя условие if else.

BEGIN

if(@type = 'add')
INSERT INTO [dbo].[napme]
       ([firstname]
       ,[lastname]
       ,[Address]
       ,[City])
 VALUES
       (@firstname,@lastname,@Address,@City)


if(@type = 'select')
select * from napme

END

Теперь я могу использовать эту процедуру в MVC с помощью Entity Framework. Если да, то как?

Как только такой метод сопоставляет параметры, но я не могу сопоставить @type
Может ли кто-нибудь предложить любой простой способ

2 ответа

  1. Вы можете попробовать, как это

    var courseList = ctx.Database.SqlQuery<YourEntityName>("exec ProcName @Param1", Param1).ToList<YourEntityName>();
    
  2. Если вы планируете использовать EntityFramework сначала кода, то при желании вы можете сопоставить операции вставки, обновления и удаления хранимым процедурам.

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder 
            .Entity<YourEntityClass>() 
            .MapToStoredProcedures();
    }
    

    С примером SP как так:

    CREATE PROCEDURE [dbo].[YourEntityClass_Insert]  
      @param1 nvarchar(max),  
      @param2 nvarchar(max)  
    AS  
    BEGIN 
       INSERT INTO [dbo].[YourEntityClass] ([col1], [col2]) 
       VALUES (@param1, @param2) 
    

    Смотрите здесь для получения дополнительной информации.

    Если вы планируете выполнить SP по другим причинам (не CRUD), то вам придется выполнить SP согласно ответу bharats.