使用EF模型优先传递无效的日期时间

时间:2018-08-26 04:48:52

标签: c# sql-server entity-framework stored-procedures ef-model-first

我在应用程序中首先使用EF模型,也使用存储过程。

我的表的LastStatus列名称为datetime数据类型,并且可以为空。

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

这是我的代码:

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

但是当用户要选择所有记录时,请释放日期。

许多记录具有null值。

我的问题在这里:如何将null作为datetime从C#传递到SQL Server?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您可以像这样将DateTime声明为可空值:

DateTime? StartAcceptDate;
DateTime? EndAcceptDate;

这样,您可以将null的值分配给变量,然后将其发送到数据库。