Я понимаю, что это старый вопрос, но есть еще один вариант, о котором никто не упомянул. Вместо того, чтобы полностью отключить эту полезную функциональность, мы можем включить функциональность, но просто удалим раздражающие инструменты времени выполнения из верхней части наших приложений:
Этот параметр можно снять в следующем месте:
Инструменты> Параметры> Отладка> Общие> Включить инструменты отладки пользовательского интерфейса для XAML> Показывать инструменты времени выполнения в приложении
blockquote >
Я нахожу, что он лучше использует пустой указатель вместо пустого указателя DB.
причина состоит в том, потому что, поскольку Вы сказали, Вы разделяете себя от мира DB.
Это - обычно хорошая практика для проверки ссылочных типов, чтобы гарантировать, что они не являются пустыми так или иначе. Вы собираетесь быть проверкой пустой указатель для вещей кроме данных DB, и я нахожу, лучше сохранять непротиворечивость через систему и пустой указатель использования, не DBNull
.
В конечном счете, архитектурно я нахожу, что это лучшее решение.
Если бы Вы записали свой собственный ORM, то я сказал бы просто, что пустой указатель использования, так как можно использовать его однако, Вы хотите. Я полагаю, что DBNull первоначально использовался только для обхождения того, что значение вводит (интервал, DateTime, и т.д.) не мог быть пустой указатель, так вместо того, чтобы возвратить некоторое значение как нуль или DateTime. Минута, которая была бы , подразумевает пустой указатель (плохо, плохо), они создали DBNull для указания на это. Возможно, был больше к нему, но я всегда предполагал, что это было причиной. Однако теперь, когда у нас есть nullable типы в C# 3.0, DBNull больше не необходим. На самом деле LINQ к SQL просто использует пустой указатель повсеместно. Никакая проблема вообще. Обнимитесь будущее... используют пустой указатель.;-)
На основе опыта я имел.NET, DataTables и TableAdapters работают лучше с DBNull. Это также открывает несколько специальных методов, когда со строгим контролем типов, таких как DataRow. IsFirstNameNull, когда на месте.
мне жаль, что я не мог дать Вам лучший технический ответ, чем это, но для меня нижняя строка является использованием DBNull при работе со связанными с базой данных объектами, и затем используйте "стандартный" пустой указатель, когда я имею дело с объектами и связанным с.NET кодом.
Используйте DBNull
.
Мы encouintered своего рода проблемы при использовании пустого указателя.
, Если я вспоминаю правильно, Вы не можете ВСТАВИТЬ нулевое значение в поле, только DBNull.
Могла быть Oracle, связанная только, извините, я больше не знаю детали.