存储过程中的标量值通过实体框架

时间:2011-11-22 17:09:21

标签: entity-framework stored-procedures

我找到了一些像这样的文章: 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()

1 个答案:

答案 0 :(得分:14)

试试这个:

int? result = myEntities.MyProcedure(orderId).FirstOrDefault();