Я пытаюсь проверить, была ли переменная определена как Nullable Guid. например.
Dim myGuid As Nullable(Of Guid)
or Dim myGuid As Guid?
Кажется, что выполнение myGuid.GetType
возвращает основной тип, то есть тип Guid, а не Guid?. Таким образом, проверка myGuid.GetType Is GetType(Guid?)
всегда возвращает False.
Как узнать, является ли myGuid типом, допускающим значение NULL?
Эд: Я могу сделать следующее, что правильно возвращает True для "Guid?" и False для «Guid»:
Not Nullable.GetUnderlyingType(GetType(Guid?)) Is Nothing
Проблема в том, что я не знаю, как получить тип nullable из самой переменной, чтобы проверить его. Мне удалось получить только базовый (не обнуляемый) тип системы.
Эд: Объяснение того, почему мне нужно знать. :)
Я написал вспомогательную функцию БД. Я передаю ему объект, состоящий из общедоступных элементов, представляющих данные строки таблицы. Членами являются столбцы таблицы.
Используя отражение, я перебираю эти общедоступные члены, чтобы создать оператор INSERT для объекта команды и заполнить его параметры значениями этих членов. Все идет нормально.
Но теперь есть таблица со столбцом uniqueidentifier, который я не должен заполнять из объекта строки, так как по умолчанию он равен "NEWID()" (с использованием SQL Server 2008). Вместо того, чтобы пропускать все столбцы Guid, что было бы легко, я хочу пропустить только те, которые определены в классе данных строки как «Guid» (не обнуляемые).
В основном, я использую Guid? (Nullable), чтобы указать, что можно заполнить этот столбец uniqueidentifier данными. Если он не обнуляемый, это говорит мне пропустить его, потому что столбец имеет значение по умолчанию NEWID().
Надеюсь, это имеет смысл. Если бы у меня был лучший способ узнать, какие столбцы guid пропустить, а какие заполнить, я бы очень хотел узнать. Это просто подход, который, как я думал, будет выполним.
Public ClientFirstName As String
. Имя элемента отражает имя столбца базы данных. Есть ли способ добавить специальные атрибуты члену класса в код, к которому затем можно получить доступ через отражение? - person ingredient_15939   schedule 17.01.2012