首页 > 解决方案 > 使用 EF 模型优先传递空日期时间

问题描述

我在我的应用程序中使用 EF 模型优先并且也使用存储过程。

我的表有一个数据类型的LastStatus列名,datetime它可以为空。

当用户填写一个datetime值时,它可以正常工作。

这是我的代码:

  (@StartAcceptDate IS NULL OR LastStatusDate >= @StartAcceptDate)
  AND  (@EndAcceptDate IS NULL OR LastStatusDate >= @EndAcceptDate)

但是当用户想要选择所有记录发布日期时。

许多记录具有null价值。

我的问题在这里:如何从 C# 传递nulldatetimeSQL Server?

标签: c#sql-serverentity-frameworkstored-proceduresef-model-first

解决方案


最好的方法是在您的存储过程中将默认参数值设置为 NULL,您不必将 NULL 显式传递给您的存储过程。

CREATE PROCEDURE dbo.Proc 
    (@param1 INT = NULL, 
     @param2 INT = NULL ....)

如果您仍想NULL从您的 C# 代码发送到您的存储过程,您可以使用DBNull.Value


推荐阅读