У меня есть код:
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: параметр запроса не может быть типа System.Object.
После некоторого чтения я узнал, что ExecuteCommand не поддерживает нулевые параметры, в то время как spec утверждает, что он должен.
Кто-нибудь столкнулся с этой проблемой и нашел обходное решение?
Спасибо кучу
Вы пробовали:
DBNull.Value
Вы пробовали отправить DBNull.Value
или новый Nullable<DateTime>()
?