LinQ查询条件

Har*_*ala 3 .net c# linq

我正在尝试将数据导入新数据库,但旧数据库中的某些列为空.

在我的方法之一,我使用下面的查询来获取记录,就像我说的已经有其中有一些记录null值的列的列.

Guid nameGuid= new guid('CCECE54B-EE14-4463-8A0B-02C72679334A')

MySubQuery = from a in MainQuery
              where a.Table1.Id.Equals(nameGuid)
        Select a;
Run Code Online (Sandbox Code Playgroud)

我想检查a.Table1.Id值,如果它等于null,那么我仍然想要该行但忽略where条件.

任何在Linq查询中使用三元运算符或任何其他方法来执行任务的建议.

Jon*_*eet 8

听起来像你想要的:

MySubQuery = from a in MainQuery
             where a.TableId.Id Is Nothing OrElse a.Table1.Id.Equals(nameGuid)
Run Code Online (Sandbox Code Playgroud)

这是假设我的VB是正确的...在C#我只是写:

var query = from a in mainQuery
            where a.TableId.Id == null || a.TableId.Id == nameGuid
            select a;
Run Code Online (Sandbox Code Playgroud)

或直接使用扩展方法:

var query = mainQuery.Where(a => a.TableId.Id == null || 
                                 a.TableId.Id == nameGuid);
Run Code Online (Sandbox Code Playgroud)