说我有一个存储过程GetAddressInfo(addressId int, errorCode int output)
。存储过程返回AddressLine1和State,如果addressId
与数据库中的某一行匹配。如果未找到行,则错误代码设置为非零值,并且不会触发select语句。因此,它应该是这样的:用EF 4.0调用存储过程并使用输出参数
if (valid address id) begin
Set errorCode = 1
return
end
select AddressLine1, State from ....
当我使用EF 4.0调用这种存储过程,我得到一个实体框架异常,当address id
无效。例外情况提到AddressLine1
列不是数据阅读器的一部分。
我期待没有结果(没有记录)并输出错误代码参数设置为1.相反,我收到异常。我只是想停止处理剩下的存储过程并立即返回。看起来像EF 4.0不太支持这个功能。
对此的任何想法?
在此先感谢!
该地址ID验证属于您的应用程序... –
理想情况下,是的,地址ID将在应用程序层进行验证,但我正在处理的项目有大量类似逻辑的存储过程。我试图找到将它们移动到实体框架的简单方法。 – Eric