C# Net将参数传递给实体框架中的存储过程模型

C# Net将参数传递给实体框架中的存储过程模型,c#,asp.net-mvc,entity-framework,stored-procedures,C#,Asp.net Mvc,Entity Framework,Stored Procedures,我正在使用ASP.NET MVC,我有一个存储过程的模型,我使用EF Designer从现有数据库中创建了该模型。我把代码放在这里: public class SpGetClientPhonesController : ApiController { ShopEntities2 db = new ShopEntities2(); public string Get() { var json = ""; spGetRegister_Resul

我正在使用ASP.NET MVC,我有一个存储过程的模型,我使用EF Designer从现有数据库中创建了该模型。我把代码放在这里:

public class SpGetClientPhonesController : ApiController
{
   ShopEntities2 db = new ShopEntities2();
    public string Get()
    {
        var json = "";

        spGetRegister_Result objmodel = new spGetRegister_Result( *HERE I SHOULD SPECIFY THE SP INPUT PARAMETERS*);


    }
}

我想使用此模型检索存储过程返回的数据,但我需要首先指定此存储过程需要的输入参数。如果您的模型是从数据库生成的,并且您的存储过程在数据库中被引用,我该如何做呢

然后,使用实体框架调用存储过程的方式如下:

using(var db = new ShopEntities2())
{
  int id = 1234;
  var result = db.spGetRegister(id); //You should have intellisense here for your parameter(s) so `id` may not exactly correct but you get the idea. 
}

我在挖掘,并要求多一点,我能够解决这个问题。当使用实体框架将存储过程映射到模型时,您必须使用两个概念。使用我之前的spGetRegister示例,当我创建模型时,我得到了spGetRegister和spGetRegister\u结果。 spGetRegister_结果是处理存储过程返回内容的结果,而spGetRegister是我必须使用其输入参数调用的结果。以下是一个例子:

ObjectResult<spGetRegister_Result> newRecord = new spGetRegister_Result;
newRecord = db.spGetRegister( IdClient:9587, IdSite:94);
ObjectResult newRecord=new spGetRegister\u结果;
newRecord=db.spGetRegister(IdClient:9587,IdSite:94);
从这里可以得到变量
newRecord
上存储过程的结果行,您可以使用它执行任何操作