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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值