我试图使用简单。Data作为我的ADO,但是我遇到了一个问题,试图把一个查询连接几个表,然后根据非主表中的值过滤结果。
Scenario是一个工作申请应用程序(但工作就像在给定的一天要完成的特定任务)。有3个相关的表,jobs
, applications
和application_history
。对于jobs
表中的每个记录可以有多个applications
,对于每个applications
可以有多个application_history
记录。在application_history
表中,有一个status
列表示每个应用程序被发送、提供和最终接受。
所以我想要一个查询,返回所有接受的申请,在未来的工作;例如,jobs
表中的date
列是未来的,application_history
表中有一条相关的记录,状态列是5
(意思是接受)。
如果这是普通的旧SQL,我会使用这个查询:
<>之前从应用程序中选择A *作为A内部连接application_history作为AH ON AH。application_id = A.idINNER JOIN job作为jon jid = A.job_id在哪里啊。status_id = 3 AND J.date> date('now')之前但是我想知道如何使用Simple.Data实现同样的事情。另外,如果你能忽略"工作必须在未来"这一步,这将有助于我理解发生了什么。
作为参考:简单。数据文档,特别是关于显式连接的部分。您应该能够执行如下操作:
//db is your Simple.Data Database object
db.application
.Join(db.application_history)
.On(db.application.id == db.application_history.application_id)
.Join(db.job )
.On(db.Applications.job_id == db.job.id)
.Where(db.application_history.status_id == 3 && db.job.date > DateTime.Now());
我不确定是否简单。数据知道如何处理Date
部分