Вопрос

У меня есть код:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", "19601023",
             }

Однако я также хочу иметь возможность передавать пустые значения в хранимую процедуру, чтобы она просто не использовала их.

Теперь со строками это легко, я могу просто передавать string.empty, и это будет работать. Однако, если я хочу пройти пустые даты, это проблема.

Я явно пробовал:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", null,
             }

Но это не работает, дает ошибку:

System.Exception: Queryparameter не может быть типа System.Object.

После некоторого чтения я узнал, что Arexecommand не поддерживает нулевые параметры, в то время как спецификация утверждает, что она должна.

Кто -нибудь столкнулся с этой проблемой и нашел обходной путь?

Огромное спасибо

Это было полезно?

Решение

Ты пытался:

DBNull.Value

Другие советы

Вы пробовали отправить DBNull.Value или новое Nullable<DateTime>() ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top