Строго типизированный набор данных не генерирует аргументы типа Nullable <> в методе Add <tablename>Row? - PullRequest
0 голосов
/ 10 января 2019

Я давно использую DataSets, узнал их наизнанку, даже до такой степени, что у меня нет проблем с редактированием XML-кода напрямую, чтобы преодолеть ограничения дизайнера при работе с некоторыми базами данных, не относящимися к мейнстриму, но Я ищу здесь что-то для проверки смысла ..

Я почти уверен, что в прошлом, когда я устанавливал тип данных столбца как примитивный тип, такой как Int32, DateTime, Guid , а также объявили AllowDbNull=true, что код, сгенерированный msdatasetgenerator, сгенерировал Add<tablename>Row(), который имел int? / DateTime? / Guid? в аргументах, так что нулевой может быть передан и внутри, набор данных использует DBNull.Value и т. д., когда запись в базу данных и т. д.

Я только что сгенерировал несколько наборов данных в конструкторе для VS2017 pro, и ни один из примитивных столбцов, AllowDBNull=true, не имеет аргумента, допускающего обнуление в Add<tablename>Row()

У меня нет каких-либо старых проектов, которые должны были бы перепроверить в данный момент; Кто-нибудь знает, если что-то изменилось с последними версиями генератора набора данных, которые отключили возможность обнуляемых аргументов в методе Add<tablename>Row?

Редактировать: Здесь Таблица обнуляется DateTime, но DataSet выдает исключение? Роб Россни, кажется, подтверждает то, что, как я думал, имело место, когда он говорит:

Особенно плохо, потому что типизированные наборы данных в некоторых местах используют обнуляемые типы - например, метод AddRow () для таблицы, содержащей столбец DateTime с обнуляемым значением, описанный выше, будет принимать DateTime? параметр.

(Ответы "нет, на самом деле вы сходите с ума, AddRow () никогда не обнулялся .. Вы думаете о другом методе BlahBlah ()" в порядке .. Даже просто "он никогда не поддерживал это, вы сходите с ума" тоже хорошо. Надеемся, что реальный ответ - "вы забыли также установить свойство ABC для DataColumn; заставляет генератор генерировать пустые аргументы, а не AllowDbNull=true "

Обратите внимание, что я не спрашиваю об установке типа DataColumn, например, в Nullable - я знаю, что это невозможно; но я убежден, что для объявленных обнуляемых примитивных столбцов сгенерированный код был полезен в некоторых местах, позволяя передавать значение NULL и спорить с ним в сгенерированном дизайнером коде .. ")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...