我有 3 张桌子
- 项目表
- 产品表
- 更新表
产品表保存项目中的不同产品,更新表保存对各种产品所做的更新,并保存对执行此操作的用户的引用。
基本上我想要的是有一个查询返回所有产品(因为产品到项目是多对一的关系),按我们最后一次由当前登录的用户更新的日期排序。
这是我当前的查询:
IEnumerable<ProjectProduct> list =
from joined in
(from product in db.GetTable<Product>()
join project in db.GetTable<Project>()
on product.ProjectId equals project.ID
select new { product, project })
join projectupd in db.GetTable<ProjectUpdate>()
on joined.product.ID equals projectupd.ProductID
where projectupd.CreatedBy == ParamUser
orderby projectupd.LastUpdate
select new ProjectProduct(joined.project, joined.product);
但是,我得到的结果只是更新表中的条目,而不是所有现有产品。我知道“where”子句使它只选择由特定用户创建的更新,所以我走在正确的轨道上,但我尝试了一些方法来使查询成功,但没有运气。
有人对如何获得所需结果有建议吗?