使用 LINQ 将空类型解析为 SQL

Resolving a null type with LINQ to SQL

首先道歉,我真的是 LINQ 的初学者,所以才问这个问题。

我无法从数据库中捕获空值。我正在制作 LINQ to DataTable。我正在检查 double 类型。

这是我的代码:

var results2 = from myRow in table.AsEnumerable()
                                       where myRow.Field<double>("Cost") == 0
                                       select myRow;

如果值为零,该代码可以正常工作。我如何让它也检查 null?

另一个问题也和这个问题有关:

我有这个代码:

var results = from myRow in table.AsEnumerable()
                                       where myRow.Field<string>("Name") == "test"
                                       select myRow;

如果该值为测试,则效果很好。如何检查 "Name" 列是否为 empty/null??

使用 || 运算符添加 OR 条件。

对于可为 null 的 double case,除了检查 null 之外,您还需要检查它是否具有值并且是您期望的值。

var results2 = from myRow in table.AsEnumerable()
               where (
                   myRow.Field<double?>("Cost").HasValue &&
                   myRow.Field<double?>("Cost").Value == 0)
               || !myRow.Field<double?>("Cost").HasValue
               select myRow;


var results = from myRow in table.AsEnumerable()
              where myRow.Field<string>("Name") == "test" ||
                    myRow.Field<string>("Name") == null
              select myRow;