如何正确处理LinqToSql类的System.Nullable <T>字段?

Iva*_*van 5 .net c# nullable

我有一张带有一些可以考虑的双字段的表.使用LinqToSQL试图直接使用该字段我得到

参数类型System.Nullable不能分配给参数类型double

我该如何正确处理?

Nic*_*rey 21

这个问题与Linq无关.这doubledouble?/ 和/ 之间的转换有关Nullable<double>.

不允许隐式转换double?double:

double? foo ;
double  bar = foo ;
Run Code Online (Sandbox Code Playgroud)

这些是关于选项.哪个是对的?不知道.取决于您的背景.


Ant*_*ram 9

您可以使用

double value = theObject.TheProperty.GetValueOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果你有一个Nullable<T>,你需要一个类型的值T.这会将any规范化null为默认值T,对于double,它将为0.0.如果你想要的东西其他比默认情况下,你可以解决它的另一种方式.

double value = theObject.TheProperty ?? 1d; // where 1 replaces any null
Run Code Online (Sandbox Code Playgroud)