Linq to Entities - добавить второе соединение с несколькими условиями ON - PullRequest
0 голосов
/ 05 марта 2020

В настоящее время я могу сделать успешное объединение на двух столах, как это:

            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 ). et c et c НЕ МОЖЕТ БЫТЬ ВЫДЕЛЕНО ИЗ ИСПОЛЬЗОВАНИЯ.

У меня просто проблема с синтаксисом?

...