【问题标题】:How to pass null values into stored procedure via Entity Framework?如何通过实体框架将空值传递给存储过程?
【发布时间】:2016-01-09 21:22:30
【问题描述】:

我正在使用带有实体框架的 ASP.NET MVC 4 应用程序。

我想有条件地传递空值,假设如果将值传递给DeptID,那么它应该列出仅传递给DeptID的值,如果传递DeptID = NULL,那么它应该是所有部门。

我通过检查DeptID 编写了一个过程,它返回所需的输出(如果DeptIDnull,则返回所有行)。

但问题是当我想通过以下实体框架代码传递空值时,它不起作用。

IdleTicketsChecker.Data.Test11Entities objModel = new Data.Test11Entities();
List<GeResult_Result> objTicketList =ExecuteCustomStoredProc<GetIdleTicketsByMinutes_Result>("GeResult", " @DeptID",
new SqlParameter("DeptID", DeptID)).ToList();

知道为什么会这样吗?

【问题讨论】:

    标签: sql-server entity-framework asp.net-mvc-4 entity-framework-4 entity-framework-6


    【解决方案1】:

    如果DeptID 为NULL,那么您需要将DBNull.Value 传递给您的SqlParameter

    试试这个:

    IdleTicketsChecker.Data.Test11Entities objModel = new Data.Test11Entities();
    
    // I'm *assuming* that DeptID is defined as an "int" - if not, adapt as needed
    SqlParameter paramDeptId = new SqlParameter("DeptID", SqlDbType.Int);
    
    if (DeptID == null)
        paramDeptId.Value = DBType.Null;
    else
        paramDeptId.Value = DeptID;
    
    List<GeResult_Result> objTicketList = ExecuteCustomStoredProc<GetIdleTicketsByMinutes_Result>("GeResult", "@DeptID", paramDeptId).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多