从 "select" 存储过程中检索 list/rows 个值,其中存储过程函数是从 Entity Framework 自动生成的

Retrieve list/rows of values from "select" stored procedure , where stored procedure Function is auto generated from Entity Framework

How to retrieve list/rows of values from "select" stored procedure Function ,其中存储过程 Function 是 auto generated from Entity Framework

我无法从存储过程函数中检索值列表,我被困在代码的某些部分,其中存储过程函数是使用 Entity FrameWork
自动生成的 请检查附加的代码并帮助我解决这个问题。 提前致谢

create procedure [dbo].[SP_MobileList]
(
@MobileId varchar(50) out,
@MobileName varchar(50) out
)
As
Begin
select @MobileId=MobileId,@MobileName=MobileName from BasicMobileData
END

自动生成的代码来自 Entity Framework

//ModelClass
    public partial class BasicMobileData
    {
        public string MobileId { get; set; }
        public string MobileName { get; set; }
        public string MobileIMEno { get; set; }
        public decimal MobilePrice { get; set; }
    }

//In Context
    public virtual DbSet<BasicMobileData> BasicMobileDatas { get; set; }

    //Here it returns single integer value 
    **public virtual int SP_MobileList(ObjectParameter mobileID, ObjectParameter mobileName)
     {
     return((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SP_MobileList", mobileID, mobileName);
    }**

控制器代码

public class MobileController : Controller
{
    MobileEntities objMobileContext = new MobileEntities();
    BasicMobileData objBasicMobileData = new BasicMobileData();

    #region "ActionMethods"
    public ActionResult MobileDetails()
    {
        ObjectParameter objParMobileId = new ObjectParameter("MobileId",typeof(string));
        ObjectParameter objParMobileName = new ObjectParameter("MobileName", typeof(string));

        //I am Stucked in this part of code
        // this "foreach" will not work since ,autogenerated "SP_MobileList(,)" is returning single integer value"
        foreach(BasicMobileData objBasicMobileData  in objMobileContext.SP_MobileList(objParMobileId,objParMobileName)){}
        return View();
    }
    #endregion        
}

我得到了解决方案及其工作原理

更改了存储过程

create procedure [dbo].[SP_MobileList]
As
Begin
select MobileId,MobileName from BasicMobileData
END

然后自动生成存储过程

 public virtual ObjectResult<SP_MobileIdName_s_Result> SP_MobileIdName_s()
{
            return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SP_MobileIdName_s_Result>("SP_MobileIdName_s");
}

public partial class SP_MobileIdName_s_Result
{
   public string MobileId { get; set; }
   public string MobileName { get; set; }
}

在控制器中

public class MobileController : Controller
    {
        MobileEntities objMobileContext = new MobileEntities();
        SP_MobileIdName_s_Result objMobile = new SP_MobileIdName_s_Result();

        #region "ActionMethods"
        public ActionResult MobileDetails()
        {
            foreach (SP_MobileIdName_s_Result objMobile in objMobileContext.SP_MobileIdName_s())
            {
                Response.Write(objMobile.MobileId);
                Response.Write(objMobile.MobileName);
            }
            return View();
        }
        #endregion

    }

您可以使用:

EXEC sp_help SP_MobileList

其中列出了您在 procedure/function

中使用的参数