【发布时间】:2021-06-28 16:25:04
【问题描述】:
我有以下 linq 语句。它从 allStores 返回所有内容。我删除了 DefaultIfEmpty,然后它只返回了 subs 表和 allStores 表中的商店。我需要它返回 subs 表中的所有商店,即使它们不在 allStores 表中。我尝试了一些不同的方法,并绕过了 defaultifempty,但似乎无法让它返回我需要的东西。
我需要返回存储 1、2、4、5(表 2 中的所有内容),并且我需要从表 3 中提取 storeId 的部门 ID 和表 3 中的地址。即使存储不在地址中表与否在 divisionID 表中我仍然需要查询中返回的 storeID。
from a in allStores
join sub in subs on a.DivisionId equals sub.DivisionId
join d in divs on new { a.DivisionId, a.StoreId } equals new { d.DivisionId, d.StoreId } into s
from selected in s.DefaultIfEmpty()
| StoreId | Address |
|---|---|
| 1 | 1234 Elm St. |
| 2 | 5678 Maple St. |
| 3 | 9101 Bella Ave. |
| 4 | 1234 Meadow Dr. |
| StoreId | StoreStatus |
|---|---|
| 1 | Closed |
| 2 | Open |
| 4 | Open |
| 5 | Open |
| StoreId | DivisionId |
|---|---|
| 1 | 12 |
| 2 | 14 |
| 3 | 16 |
| 4 | 18 |
| 5 | 20 |
【问题讨论】:
-
请添加一些示例数据
-
from语句中的第一个表需要包含您想要包含的所有项目,然后其他表具有“DefaultIfEmpty”。一些示例数据和预期结果会有所帮助 -
我添加了一些示例数据
-
您的示例数据不完整,无法与您的代码一起使用。正如您在对我的回答的评论中提到的那样,您淡化了它。但是你不能把它淡化到你的代码没有意义的程度。考虑修改。
-
实际上,您上面的语句“from 语句中的第一个表需要包含您想要包含的所有项目,然后其他表具有 `DefaultIfEmpty'”正是我所需要的。所以这帮助了我。在我这样做之后,我现在开始工作了。