我有一个像这样的存储过程
CREATE PROCEDURE [dbo].[GetUserData]
(@departmentId varchar(max))
AS
BEGIN
Set FMTONLY off
declare @sql nvarchar(Max)
Set @sql = 'select * from Users where DepartmentId in ('+@departmentId+'))'
exec sp_executesql @sql
当我尝试将此存储过程添加到EF并从中创建复杂类型时,出现错误:
选定的过程或函数不返回列
SET FMTONLY
关闭也没有帮助
此表有25列,手动创建复杂类型将是一种负担。
答案 0 :(得分:1)
无论你做什么 - 不要写这样的代码,一家英国公司得到的SQL注入攻击花费了大约3500万英镑。
在你的代码中,我可以在@departmentid参数中编写我想要的任何注入,你只需为我执行它!
回答你的问题 - 这可能是因为在实际执行之前,该存储过程实际上没有结果。