我找到了一些类似这篇文章的资料:
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()
。