查詢1 需求:每一行返回子表的單個記錄
from a in table_A
join b in table_B on a.Id Equals b.Id
select new {Name=a.Name,Sex=b.Sex}
查詢2 需求:每一行返回子表的多個記錄
from a in table_A
select new {Name=a.Name,Sex=String.Join(",",
(from b in table_b where a.Id == b.Id select b.Sex).ToArray())}
如果B表 要根據 A表 Id字段 返回多行數據則需要用到查詢2.
仔細琢磨下,想到了數組...
說明:
select new {Name=a.Name,Sex=String.Join(",",
(from b in table_b where a.Id == b.Id select b.Sex).ToArray()) }
逐行掃描的返回的對象
而在實例該對象屬性時,Sex屬性進行了B表的全表掃描 然後返回 b.Sex
倘若返回又是一個對象,該對象其屬性之一又要掃描C表..大概就是這個意思吧