【发布时间】:2011-02-21 16:06:13
【问题描述】:
我有一个返回值而不是数据集的存储过程,我无法让它与 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 或我设置的任何值。它不会带回价值。我怀疑我的问题在于我如何导入函数。我使用标量和数据类型Int32。由于某种原因,我禁用了“创建新的复杂类型”。有人遇到过这个问题吗?
【问题讨论】:
标签: c# entity-framework