在我们的ADO
框架代码库中,我找到了这个定义:
// Reference_System_RTK
public Company.Framework.Data.DbTypes.DbString Reference_System_RTKField
{
get {return this.DbString("Reference_System_RTK");}
set {this.DbString("Reference_System_RTK", value);}
}
在我希望阅读其值的代码中,我还会在智能感知建议中看到.Value
和.HasValue
。
所以我的问题是当intellisense显示这些属性时它是否始终意味着它是null able type
?所以我应该总是HasValue and .Value
来获得它的价值?我不能只引用字段名称吗?
PrimaryKeysCrossReferenceTable.PrimaryKeysCrossReferenceDataRow tempDataRow = tblPrimaryKeysCrossReference.Rows[0] as PrimaryKeysCrossReferenceTable.PrimaryKeysCrossReferenceDataRow;
if (tempDataRow != null && tempDataRow.Reference_System_RTKField.HasValue)
result = tempDataRow.Reference_System_RTKField.Value;
VS
result = tempDataRow.Reference_System_RTKField;
我没有收到其中任何一个的编译错误。
我还查看了SQL Server
中的表列定义,并在该字段中显示了"not null"
答案 0 :(得分:1)
事实上Nullable
以外的类型可能有Value
和HasValue
属性,所以不,因为类型具有这些属性并不意味着它是一个Nullable
的实例。