【发布时间】:2012-11-24 14:35:12
【问题描述】:
我有强类型数据集。现在我想用 linq 对数据表进行选择。
我的问题是该表具有允许空值的数字列。但是,如果有数据行在此列中没有值,我不知道要执行 Select- 命令。
这是我的查询:
var query = from tab1 in localDataSet.simpleTable
select new {
line = tab1.IsLineNull ? null : tab1.line,
wait = tab1.IswaitNull() ? null : tab1.wait
}
如果 tab1.IsLineNull() 返回 true,我无法设置 line = null,因为数据类型“十进制”(以及所有其他数字值类型)不能为 null。但是我应该选择什么呢?我也不能选择0。
【问题讨论】:
-
为什么所有数值类型都不能为空的时候,还要创建
IsLineNull的方法? -
@TimSchmelter 他们实际上可以使用'int'为空?或“双倍?”等等。也适用于 bool
-
更改您的模型以使用可为空的类型。详情见这里; msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.80).aspx
-
@The_Cthulhu_Kid:我知道他们通常可以,但 OP 提到他们不能:“因为数据类型“十进制”(以及所有其他数字值类型)不能为空。 " 编辑:我认为 OP 会知道 nullables。