gpt4 book ai didi

sql-server-2008 - 如何将值从动态 SQL 存储过程返回到 Entity Framework ?

转载 作者:行者123 更新时间:2023-12-04 07:08:22 24 4
gpt4 key购买 nike

我有一个执行一些动态 SQL 的存储过程。我想在 Entity Framework 4 中使用此存储过程,但是当我尝试创建复杂类型时,该过程不返回任何列。有什么办法可以强制它返回我的值并让 Entity Framework 接收它们?这是我想要做的一个非常简单的例子:

CREATE PROCEDURE sp_calculatesalary(@EmployeeId as int)
begin
declare dynsql as varachar(500)
@dynsql='Select @Salary=Salary,@UserName=Username from employee
where EmployeeId='+cast(@EmployeeId as varchar)+ ''
exec(@dynsql)
select @Salary, @UserName
end

但这不起作用。请帮帮我。基本上,我想使用存储过程来执行动态 SQL 并将值返回给 Entity Framework 。

最佳答案

如果您必须进行动态查询,也许您可​​以考虑参数化 SQL:

CREATE PROCEDURE sp_calculatesalary(@EmployeeId as int)  
as
begin
declare @dynsql varchar(500)
declare @params nvarchar(500)
declare @salary money
declare @username varchar(50)
set @dynsql='Select @sal=Salary,@usernm=Username from employee where EmployeeId=@empID'
set @params='@empID int, @sal money OUTPUT, @usernm varchar(50) OUTPUT'
exec sp_executesql @dynsql, @params, @empID=@EmployeeID, @sal=@salary OUTPUT, @usernm = @username OUTPUT
SELECT @salary, @username
end

关于sql-server-2008 - 如何将值从动态 SQL 存储过程返回到 Entity Framework ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com