我找到了一些像这样的文章: http://devtoolshed.com/using-stored-procedures-entity-framework-scalar-return-values
然而,当我采取步骤为int32标量创建函数导入时,这就是生成的内容:
public ObjectResult<Nullable<global::System.Int32>> MyStoredProcedure(Nullable<global::System.Int32> orderId)
{
ObjectParameter orderIdParameter;
if (orderId.HasValue)
{
orderIdParameter = new ObjectParameter("OrderId", orderId);
}
else
{
orderIdParameter = new ObjectParameter("OrderId", typeof(global::System.Int32));
}
return base.ExecuteFunction<Nullable<global::System.Int32>>("MyStoredProcedure", orderIdParameter);
}
我可以用这个来调用这个程序,但是我无法进入基础标量:
ObjectResult<int?> result = myEntities.MyProcedure(orderId);
在我看过的代码示例中,我应该得到context.MyProcedure().SingleOrDefault()
。
答案 0 :(得分:14)
试试这个:
int? result = myEntities.MyProcedure(orderId).FirstOrDefault();