我有一个存储过程,它返回的是一个值而不是数据集,我在使用EF4时遇到了问题。我看到了这篇文章:http://dotnet.dzone.com/news/how-retrieve-stored-procedure。我添加了一个过程到模型中,并导入了一个函数。我遇到的第一个问题是我的过程中的参数名称类似于
调用
@_Parameter_in
。这使得EF将它们作为p_Parameter_in
带入,因为它不能使用下划线作为第一个字符。然后当我调用存储过程时,我可以在SQL Profiler调用中看到它寻找@p_Parameter_in
,当然会出现问题。现在我更改了参数名称并查看了SQL Trace - 一切看起来都很好并且运行良好。问题是我无法取出值。以下是我的代码:System.Data.Objects.ObjectParameter newKey = new System.Data.Objects.ObjectParameter("NewKey_out", typeof(Int32));
newKey.Value = 0;
context.GetNextSurrogateKey_v2("tTest", newKey);
调用
newKey.Value
后,它总是0或我设定的任何值。它不会带回值。我怀疑我的问题在于如何导入函数。我使用Scalars和数据类型Int32
。出于某种原因,对我禁用了“创建新的复杂类型”。有人遇到过这个问题吗?