在我的项目中EF调用一个存储过程,如下所示。它返回1或范围标识。实体框架在调用存储过程时显示错误
在EF函数导入时,存储过程将以十进制的返回类型列出。
当存储过程返回作用域标识时,一切正常。
但当SP是否满足条件,EF抛出错误的
由存储数据提供者返回的数据读取器没有足够的列要求的查询。
请帮助..
这是我的存储过程:
@VendorId int,
@ueeareaCode varchar(3),
@TuPrfxNo varchar(3),
@jeeSfxNo varchar(4),
@Tjode varchar(3),
@uxNo varchar(3),
@TyufxNo varchar(4),
@Iyuy bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
SET NOCOUNT ON;
IF EXISTS (Select dfen_id
from dbo.efe_phfedwn_eflwn
where
[yu] = @Tyuode and
[uy] = @TuyxNo and
[yuno] = @Tuo)
return 1
ELSE
Begin
INSERT INTO dbo.yu
....................
Select Scope_Identity()
End
END
我对EF不是很有经验,但是有可能因为你返回1或选择了'Scope_Identity()'而遇到困难?你能否尝试将'Select Scope_Identity()'改为'RETURN Scope_Identity()',看看它是否有所作为? – Sean
如果这样不能解决问题(我没有太高的期望),那么让其他人看到EF正在使用的代码来获得这个SP的结果,模型代码或者其他任何东西都是有帮助的 – Sean
no ,我测试过使用return。但是现在它在两种情况下都显示相同的错误。后来,只有当条件满足时才显示。 –