Asp.net mvc 3 如何在查询中设置默认为空

Asp.net mvc 3 如何在查询中设置默认为空,asp.net-mvc-3,linq,linq-to-sql,Asp.net Mvc 3,Linq,Linq To Sql,所以我有一个疑问: var list = (from x in xList join a in AList on x.commonfield equals a.commonfield join b in BList on x.newCommonField equals b.newCommonField from c in Clist.Where(p=>p.connectorID==

所以我有一个疑问:

   var list = (from x in xList 
                 join a in AList on x.commonfield equals a.commonfield
                 join b in BList on x.newCommonField equals b.newCommonField
                 from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultifEmpty()
                                select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name}).ToList();

    list.ForEach(el =>
                    {
                        el.x.DesiredFieldFromA= el.DesiredFieldFromA;
                        el.x.DesiredFieldFromB= el.DesiredFieldFromB ;
                        el.x.Name=el.name;
                    });
    return list.Select(p=>p.x);
当我这样做时:

select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name}).ToList();
问题#1:我怎么能告诉它它还应该给我看记录。。。但如果名称字段为空,则将string.empty放入
一些事情:

select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,c.name??string.Empty}).ToList();
问题#2:即使“connectorID”为空,我如何判断它。。我仍然需要它来显示x记录
提前谢谢

1和2的解决方案如下:

from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultifEmpty()
                                select new { x, a.DesiredFieldFromA, b.DesiredFieldFromB,name= (c==null) ?"Not Defined": c.name}).ToList();
对于问题1,请尝试以下方法:

select new { 
    x, 
    a.DesiredFieldFromA, 
    b.DesiredFieldFromB, 
    name = c.name ?? string.Empty
}).ToList();
您需要指定名称“name”,以便可以使用表达式对其进行赋值

对于问题2,请参阅。

对于问题1,请尝试以下操作:

select new { 
    x, 
    a.DesiredFieldFromA, 
    b.DesiredFieldFromB, 
    name = c.name ?? string.Empty
}).ToList();
您需要指定名称“name”,以便可以使用表达式对其进行赋值

关于问题2,请参阅。

关于问题2,更改:

from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultidEmpty()
致:

对于问题2,更改:

from c in Clist.Where(p=>p.connectorID==x.connectorID).DefaultidEmpty()
致:


对于问题#2,您是否在寻找类似于
左外连接的东西
?是的。。。但是使用它会给我提供很多connectorID=null的重复记录。我在为一个固定的自动取款机工作。:)感谢问题2,您是否正在寻找类似于
左外连接的东西
?是的。。。但是使用它会给我提供很多connectorID=null的重复记录。我在为一个固定的自动取款机工作。:)谢谢你的回答。至于我接受答案的决定,我真的掷了一枚硬币,你输了。但是为了你的荣誉,我要通过听约翰尼戈尔德:再一次!没问题,@Noobsyke。恕我直言,那个视频里不是我;)谢谢你的回答。至于我接受答案的决定,我真的掷了一枚硬币,你输了。但是为了你的荣誉,我要通过听约翰尼戈尔德:再一次!没问题,@Noobsyke。恕我直言,那个视频里不是我;)