首页 > 解决方案 > Linq to Entities - 添加具有多个 ON 条件的第二个联接

问题描述

我目前可以在这样的两个表上成功加入:

            var query = db.DepoAccounts
           .Join(db.DepoAccountDetails,
                 t1 => new { t1.INTEG_REF_NO, t1.BASE_DATE },
                 t2 => new { t2.INTEG_REF_NO, t2.BASE_DATE },
                 (t1, t2) => new DataCustomerAccountGDWHModel
                 {
                     BranchNumber = t1.BR_NO,
                     BookedBalance = t2.DP_FACE_BAL_VAL_ADJ,
                 }
           );

我可以像这样加入第三张桌子,以获得 AccountName:

var query = db.DepoAccounts
            .Join(db.DepoAccountDetails,
                    t1 => new { t1.INTEG_REF_NO, t1.BASE_DATE },
                    t2 => new { t2.INTEG_REF_NO, t2.BASE_DATE },
                    (t1, t2) => new { t1, t2 })
            .Join(db.AccountCodes,
                    j1 => j1.t2.DP_ACT_CD,
                    j2 => j2.ACT_CD,
                    (j1, j2) => new DataCustomerAccountGDWHModel
                    {
                        BranchNumber = j1.t1.BR_NO,
                        BookedBalance = j1.t2.DP_FACE_BAL_VAL_ADJ,                
                        AccountName = j2.ACT_NAME
                    }
            );

现在我想在刚刚添加的内容中再添加两个连接条件,我这样做:

var query = db.DepoAccounts
             .Join(db.DepoAccountDetails,
                     t1 => new { t1.INTEG_REF_NO, t1.BASE_DATE },
                     t2 => new { t2.INTEG_REF_NO, t2.BASE_DATE },
                     (t1, t2) => new { t1, t2 })
             .Join(db.AccountCodes,
                     j1 => new { j1.t2.DP_ACT_CD, j1.t2.BASE_DATE, j1.t2.BR_NO },
                     j2 => new { j2.ACT_CD, j2.BASE_DATE, j2.BR_NO },
                     (j1, j2) => new DataCustomerAccountGDWHModel
                     {
                        BranchNumber = j1.t1.BR_NO,
                        BookedBalance = j1.t2.DP_FACE_BAL_VAL_ADJ,                
                        AccountName = j2.ACT_NAME
                     }
             )

但是,这给了我以下编译错误:方法'Queryable.Join(IQueryable)的类型参数。等等等等不能从使用中推断出来。

我只是有语法问题吗?

标签: entity-frameworklinqlinq-to-entities

解决方案


推荐阅读