通过Entity Framework从存储过程获取标量值

9
我找到了一些类似这篇文章的资料: 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个回答

17

试试这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接