entity-framework - 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)的类型参数。等等等等不能从使用中推断出来。
我只是有语法问题吗?
解决方案
推荐阅读
- excel - 将带有单元格锚定图像的电子表格导入 SQLite 数据库
- apache-zookeeper - 如何实现自定义执行器端点来检查动物园管理员的健康状况?
- batch-file - 批处理文件:以缩进顺序列出目录中的所有文件
- node.js - 在 Angular 8 应用程序中调用 nodejs kafka 脚本
- php - 使用 CURL 接收数据,然后将数据发送到外部 webhook
- octobercms - 为什么十月 CMS Markdown 编辑器会以这种奇怪的格式添加图像?![](http://)
- c++ - 如何从存储在 QByteArray 中的十六进制值计算校验和
- sql - 加入可空列
- spring - 用于连接到 Postgres 的 Spring 配置。需要bean:'org.flywaydb.core.internal.jdbc.JdbcTemplate'
- node.js - process.hrtime 返回不匹配的秒和毫秒