当试图导入存储过程作为实体框架5中的函数时,出现以下错误。我最近更新了数据项目以引用新版EF。执行函数中的类型参数与函数返回的类型不兼容
在ExecuteFunction来的类型参数“SSDS.Data.testy_Result”是 与类型不兼容“SSDS.Data.testy_Result”由 函数返回。
我无法得到它的任何存储过程的工作......这是我简单的测试之一:
CREATE PROCEDURE testy
AS
BEGIN
select 'hello' as hello
END
GO
它打破上面这里的例外:
public virtual ObjectResult<testy_Result> testy()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<testy_Result>("testy");
}
并且在模型设计器的“编辑功能导入”窗口中将结果设置为字符串标量时没有错误。
我打电话这样的功能:
private Entities db = new Entities();
var x = db.testy();
有没有办法,我在这里失踪了一些东西明显?在我的项目中有几个edmx文件,其他文件是使用较旧版本的EF创建的(并使用ObjectContext)。
函数映射:
更多函数映射详细信息:
testy_Result类:
public partial class testy_Result
{
public string hello { get; set; }
}
尝试将过程中的值转换为varchar或nvarchar – 2013-05-08 14:58:48
检查导入函数的映射是否与选定的返回类型匹配。在模型资源管理器中,右键单击导入的函数并选择“函数导入映射”。确保左边的属性与右边的字段匹配 – James 2013-05-08 17:47:25
@RuiJarimba在proc中强制转换does not帮助 – woggles 2013-05-09 14:25:46