linq to Entity 左连接问题

.net framework3.5 linq to Entity 左连接问题

今天遇到linq to Entity 左连接问题,g 下,结果发现介绍的都是linq to sql 的左连接,用的方法都是DefaultIfEmpty()

,而linq to Entity 在3.5里不支持这个属性,4.0里支持。但程序里确实得用 linq to Entity 的左连接,郁闷。
 之前我们是3个表(A,B,C)关联是内联接。现在两个内(A,B)联接之后,再left join 第3个表(C)

 变通下,
    1).a,c 用linq 内连接下作为一个匿名结果集(D),并增加3个空字段,以便保存C表里传过来的数据,
    2).再于C内连接作为结果集(E) (E结果集合的条数是最少的)
    3) 将D类型转化为DataTable类型,否则不让往相应字段上写数据
    4) 以E为外围循环条件,D 为内循环

            foreach (var el in E)
            {
                for (int i = 0; i < D; i++)
                {
                    if (el.CurrentAreaID.ToString() == D.Rows[i]["AreaID"].ToString())
                    {
                        D.Rows[i]["NumberUsers"] = el.WebUserCount.ToString();
                        D.Rows[i]["UseFre"] = el.WebUseCount.ToString();
                        D.Rows[i]["PlanUserPerson"] = el.WebPlanCount.ToString();
                    }
                }
            }

    5)最后把D datatable 格式化json,结果发现系统带的不支持(JavaScriptSerializer)。
    6)再网上找了个,结果不符合EXT的解析,只好按EXT的格式自己解析了下datatable 转JSON
        7)CRMUtils.DataTableExtensionMethods.JSON_DataTable(dQTable)

    有好的办法,欢迎大家提出来。

你可能感兴趣的:(linq to Entity 左连接问题)