0

我对实体框架函数导入有一个有趣的问题。我正在从 MS SQL Server 2008 R2 导入一个存储过程,它只返回一个字符串。但是,EF 推断此返回类型太复杂了,因此在定义函数导入时,我必须手动指定该函数返回一个标量集合(ObjectResult<global::System.String>如生成的那样)。

有时,该过程会返回一个仅包含数字并以零开头的字符串(例如,01234)。当我在代码中访问此结果时,结果发现没有起始零 ( 1234)!

我知道几种解决方法,所以这不是问题。我想了解发生了什么。

我的疯狂猜测是,在我的情况下 - 当 SP 太复杂而无法“预测”其结果时 - EF 首先尝试通过该数据的格式“猜测”返回数据的类型。即,它看到一个数字 ( 01234),并将其转换为整数类型 ( int, short- 不管)。然后它看到我想要一个string,并将这个数字转换回string,但是在这些转换过程中,从零开始当然会丢失。这是真的吗,还是有更好的解释?

更新:这是函数导入的屏幕截图:

函数导入

4

0 回答 0