В конечном счете, SQL Серверу (в режиме совместимости с ANSI) требуется другой синтаксис для совпадения нуля. Честно говоря, в вашем случае я бы просто сделал:
if (Car.VerifiedDate.HasValue)
{
Parameters.Add(Context.CreateParameter("@VerifiedDate", 30, Car.VerifiedDate.Value, DbType.DateTime));
queryWhereClause = " AND VerifiedDate=@VerifiedDate";
}
else
{
queryWhereClause = " AND VerifiedDate IS NULL";
}
Однако вы также можете сделать такие вещи, как:
AND (VerifiedDate=@VerifiedDate OR (VerifiedDate IS NULL AND @VerifiedDate IS NULL))
Сервер обычно будет работать лучше при первом подходе, так как он меньше условий и ветвей - и он может наиболее эффективно использовать индекс, если он существует.