我有一个非常简单的存储过程,我用它来测试一些东西:
ALTER PROCEDURE [cms].[TestSPROC]
AS
BEGIN
DECLARE @Test INT
SELECT *,CONVERT(NUMERIC(3,2),15) AS Test
FROM Viper.Currencies
END
SP 应返回算术溢出异常,并在 SQL Server Management Studio 中执行此操作。
问题:
在我的应用程序中使用实体框架的.ExecuteFunction<T>
方法调用 SP 时,返回 null 而不是抛出 EntityException。(使用函数导入时会发生同样的事情,但本质上只是调用.ExecuteFunction<T>
)
这是我的代码:
using (CmsEntities context = new CmsEntities())
{
try
{
context.ExecuteFunction<TestSPROCResult>("TestSPROC");
}
catch (EntityException exc)
{
MessageBox.Show(exc.Message);
}
}
如果我调用context.ExecuteFunction("TestSPROC");
异常被抛出并处理,那么问题可能与复杂类型有关。
有没有人遇到过/设法解决这个问题?