本帖最后由 baby520520 于 2012-06-20 22:58:25 编辑

解决方案 »

  1.   


    var query = from a in data.A
                join b in data.B
                on a.bid equals b.id into ab
                from b in ab.DefaultIfEmpty()
                join c in data.C
                on b.cid equals c.id into bc
                from c in bc.DefaultIfEmpty()
                join d in data.D
                on c.did equals d.id into cd
                from d in cd.DefaultIfEmpty()
                join e in data.E
                on d.eid equals e.id into ce
                from e in ce.DefaultIfEmpty()
                select new Signature
                {
                      Id = a.Id,
                      Name = b==null?"":b.Name,
                      Pro = c==null?"":c.Pro,
                      IpAdd = d==null?"":d.IpAdd
                }; 
      

  2.   

    Select里的cast发生的问题。既然是outer join,你要考虑到 r2.Pro 可能为 null 的时候。
    象2楼那样就可以了            ......
                select new Signature
                {
                      Id = a.Id,
                      Name = b==null?"":b.Name,
                      Pro = c==null?"":c.Pro,
                      IpAdd = d==null?"":d.IpAdd
                }; 
      

  3.   

    以后 类似的 去linq板块   问 那儿专业
      

  4.   

    还是报错啊,说什么未实现该方法或操作,还是toList()那里报错,我调试看query结果视图里只写着"未实现该方法或操作。大侠,咋办
      

  5.   

    对不起啊,先说明一下,我是在NHiberate上用linq查询的,发张图给你看看,我发现不只是多张表有这样的错误,连普通的两张表左连接也报错说“未实现该方法或操作”,请注意图片的红色圈出来的部分,实体有值,但是下面就是报“未实现该方法或操作”,大侠看图,帮忙找找原因: