2016-09-30 3 views
0

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

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
Можно ли предложить любой простой способ

ответ

0

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

var courseList = ctx.Database.SqlQuery<YourEntityName>("exec ProcName @Param1", Param1).ToList<YourEntityName>(); 
+0

'@ Param1' - не что иное, как ваш параметр, в котором вы можете передать свой' @ Type' – Bharat

0

Если вы планируете использовать code- First 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) 

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

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

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