Comments 7
Видим, что в конструкторе они инициализируют field значением true. Вообще у ColumnAttribute есть еще свойство CanBeNullSet, которое к несчастью internal, при помощи которого можно было бы узнавать выставлено ли свойство или нет.
Не пробовали проверить прямо в runtime через механизмы рефлексии, используя BindingFlags.NotPublic?
0
занятно
интересно в Entity Framework существует такая проблема?
интересно в Entity Framework существует такая проблема?
+1
Вроде нет, там получается такой маппинг:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
[global::System.Runtime.Serialization.DataMemberAttribute()]
public decimal price
{ get { .... } set { .... } }
* This source code was highlighted with Source Code Highlighter.
+2
public static bool IsDbNull(this PropertyInfo propertyInfo)
{
var columnAttribute = propertyInfo.GetAttribute();
var notNull = columnAttribute.DbType.Contains(«NOT NULL»);
return columnAttribute.CanBeNull && !notNull;
}
{
var columnAttribute = propertyInfo.GetAttribute();
var notNull = columnAttribute.DbType.Contains(«NOT NULL»);
return columnAttribute.CanBeNull && !notNull;
}
0
Sign up to leave a comment.
Linq-to-Sql: Узнаем nullable поля из метаданных (или рассказ о небольшом баге)