实体框架功能导入从字符串中修剪前导零

时间:2012-10-24 17:02:36

标签: entity-framework tsql

我对Entity Framework功能导入有一个有趣的问题。我从MS SQL Server 2008 R2导入存储过程,它只返回一个字符串。但是,对于EF来说,推断这个返回类型太复杂了,所以在定义函数import时我必须手动指定该函数返回一组标量(ObjectResult<global::System.String>,如生成的那样)。

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

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

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

更新:这是功能导入的屏幕截图:

Function Import

0 个答案:

没有答案