将工作 SQL 语句转换为 LINQ 时遇到问题



SQL 语句(这有效!)

SELECT BuildingId, Address1, Address2, City, StateId, ZipCode, Nickname
FROM Building
WHERE (Active = 1)
UNION
SELECT Building.BuildingId, Building_Alternate_Address.Address1, Building_Alternate_Address.Address2, Building_Alternate_Address.City, Building_Alternate_Address.StateId, Building_Alternate_Address.ZipCode, Building_Alternate_Address.Nickname
FROM Building INNER JOIN Building_Alternate_Address ON Building.BuildingId = Building_Alternate_Address.BuildingId
WHERE (Building.Active = 1)

我写得不好的无法正常工作的 LINQ 代码(这会编译但不提供所需的结果)

Dim buildingTable = (From b In db.Buildings Where b.Active = True Select b.BuildingId, b.Address1, b.Address2, b.City, b.State, b.ZipCode, b.Nickname) _
    .Union _
    (From b2 In db.Building_Alternate_Addresses Join b In db.Buildings On b.BuildingId Equals b2.BuildingId Where b.Active = True Select b.BuildingId, b.Address1, b.Address2, b.City, b.State, b.ZipCode, b.Nickname)

找到修复程序!

Dim buildingTable = (From b In db.Buildings Where b.Active = True Select b.BuildingId, b.Address1, b.Address2, b.City, b.State, b.ZipCode, b.Nickname) _
.Union _
(From b2 In db.Building_Alternate_Addresses Join b In db.Buildings On b.BuildingId Equals b2.BuildingId Where b.Active = True (From b2 In db.Building_Alternate_Addresses Join b In db.Buildings On b.BuildingId Equals b2.BuildingId Where b.Active = True Select b2.BuildingId, b2.Address1, b2.Address2, b2.City, b.State, b2.ZipCode, b2.Nickname)

最新更新