1

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 Variable "cp2" vom Typ "Core.patient" wird vom Bereich "" verwiesen, sie ist jedoch nicht definiert。

翻译:

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

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

4

1 回答 1

-1

连接可能存在问题。这是完成同样事情的 linqish 方式。

 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
    };
于 2013-08-09T16:24:40.413 回答