LINQ外连接给出错误

时间:2013-04-10 13:50:09

标签: c# linq linq-to-sql

C#中的以下LINQ语句(一个简单的外连接)抛出一个异常的异常:

var query = 
        from cs in db.scan
        join cp in db.patient on cc.pid equals cp.pid into cpGroup
        from cp2 in cpGroup.DefaultIfEmpty()
        select new 
        { 
            Name = ((cp2 == null) ? 
                String.Empty : 
                cp2.plastname + ", " + cp2.pfirstname), 
            DOB = ((cp2 == null) ? 
                DateTime.MinValue : 
                cp2.pdateofbirth) 
        };

例外:

  

Auf die变量“cp2”vom Typ“Core.patient”wird vom Bereich“”verwiesen,sie ist jedoch nicht definiert。

翻译:

  

“Core.patient”类型的变量“cp2”由区域“”引用,但未定义。

这里有什么问题?顺便说一句。周围的try catch块无法捕获此错误...

1 个答案:

答案 0 :(得分:-1)

加入可能存在问题。这是完成同样事情的方法。

 var query = 
    from cs in db.scan
    from cp in db.patient
    where cs.pid == cp.pid
    select new 
    { 
        Name = cp.plastname + ", " + cp.pfirstname), 
        DOB = cs.pdateofbirth
    };