В настоящее время я могу сделать успешное объединение на двух столах, как это:
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 НЕ МОЖЕТ БЫТЬ ВЫДЕЛЕНО ИЗ ИСПОЛЬЗОВАНИЯ.
У меня просто проблема с синтаксисом?