Как вызвать хранимую процедуру содержит динамический SQL с Entity Framework

sql sql-server entity-framework stored-procedures dynamic-sql

316 просмотра

1 ответ

37 Репутация автора

Я использую Entity Framework получить данные из SQL Server. У меня есть хранимая процедура, которая содержит динамический SQL для поиска данных.

Мой код SQL выглядит так:

create procedure SearchProduct
    (@ProductId int = null,
     @ProductName nvarchar(50) = null,
     @ProductCatId int = null)
as
    Set NoCount ON
    declare @SqlStr nvarchar(max)
    declare @ParamList nvarchar(2000)
begin
    set @SqlStr = 'select p.ProductId, p.ProductName, p.ProductCatName, p.From, p.To from Product p where (1=1)'
-- p.from , p. to is warranty period

    if @ProductName is not null
       set @SqlStr = 'and p.ProductName like ''%' +@ProductName + '%'' )'
    ......
    set @ParamList ='@ProductId,@ProductName,@ProductCat'

    execute sp_executesql @sqlStr, @ParamList, @ProductId, @ProductName, @ProductCat
end

Я называю эту хранимую процедуру SPDynamic1из ASP.NET MVC следующим образом:

var query = db.SPDynamic1(para1, para2, para3,...);

Здесь запрос возвращает int . Как вызвать процедуру для возврата результата вроде

ProductId ProductName ProductCat
--------------------------------
1         prod001     5
2         prod001     2 
1         prod001     1 
Автор: Mr.Ken Источник Размещён: 18.07.2016 11:19

Ответы (1)


0 плюса

37 Репутация автора

Я нашел это. Entity Framework не поддерживает Dynamic Sql.

Автор: Mr.Ken Размещён: 19.07.2016 03:48
Вопросы из категории :
32x32