Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的调用存储过程_C#_Entity Framework_Stored Procedures - Fatal编程技术网

C# 实体框架中的调用存储过程

C# 实体框架中的调用存储过程,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我使用实体框架来调用存储过程。存储过程如下所示: ALTER PROCEDURE [dbo].[AdminContracts] @StatusId INT AS BEGIN SET NOCOUNT ON; SELECT .. public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus) { return ((IObjectContextAdapter) this)

我使用实体框架来调用存储过程。存储过程如下所示:

ALTER PROCEDURE [dbo].[AdminContracts] 
    @StatusId INT
AS
BEGIN
    SET NOCOUNT ON;

    SELECT .. 
public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
    return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("AdminContracts", new SqlParameter("@StatusId", orderStatus));
}
我的代码如下所示:

ALTER PROCEDURE [dbo].[AdminContracts] 
    @StatusId INT
AS
BEGIN
    SET NOCOUNT ON;

    SELECT .. 
public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
    return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("AdminContracts", new SqlParameter("@StatusId", orderStatus));
}
公共虚拟对象结果GetAdminOrders(int orderStatus)
{
返回((IObjectContextAdapter)this.ObjectContext.ExecuteStoreQuery(“AdminContracts”,新的SqlParameter(“@StatusId”,orderStatus));
}
从其他问题来看,这似乎是正确的

但是,它会导致一个例外:

过程或函数“AdminContracts”需要未提供的参数“@StatusId”

在我看来还可以,但显然我遗漏了一些东西

请尝试以下代码:

public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
    {
        return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("EXEC AdminContracts @StatusId", new SqlParameter("StatusId", orderStatus));
    }
公共虚拟对象结果GetAdminOrders(int orderStatus) { 返回((IObjectContextAdapter)this.ObjectContext.ExecuteStoreQuery(“EXEC AdminContracts@StatusId”,新的SqlParameter(“StatusId”,orderStatus)); }
执行请求查询
方法 直接对返回一系列类型化结果的数据源执行查询。 所以它可以由用户运行T-SQL语句,您可以检查它的 因此,您的代码如下所示:

public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
        return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("EXEC AdminContracts @StatusId", new SqlParameter("StatusId", orderStatus));
}
public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
  return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("AdminContracts", new ObjectParameter("@StatusId", orderStatus));
}
公共虚拟对象结果

因此,您的代码如下所示:

public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
        return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("EXEC AdminContracts @StatusId", new SqlParameter("StatusId", orderStatus));
}
public virtual ObjectResult<AdminOrder> GetAdminOrders(int orderStatus)
{
  return ((IObjectContextAdapter) this).ObjectContext.ExecuteStoreQuery<AdminOrder>("AdminContracts", new ObjectParameter("@StatusId", orderStatus));
}
公共虚拟对象结果GetAdminOrders(int orderStatus) { 返回((IObjectContextAdapter)this.ObjectContext.ExecuteStoreQuery(“AdminContracts”,新对象参数(“@StatusId”,orderStatus)); }