【发布时间】:2015-07-22 15:07:46
【问题描述】:
我有两个对象要加入 _locations 和 lrsLocations。我想用相应的lrsLocations 更新_locations 属性。为此,我使用 LINQ 来获取对这两个选项的引用,然后将ms2 属性更新为lrs(我知道这不是 LINQ 的用途,所以我对新想法持开放态度。我是现在使用这个 LINQ 查询:
var joinResult =
from
ms2 in _locations
from
lrs in lrsLocations
where
ms2.LRS_ID == lrs.attributes.route_id
&&
ms2.LRS_LOC_PT == lrs.attributes.measure
select
new {ms2, lrs};
它有效,但我真的需要LEFT OUTER JOIN,所以在谷歌搜索后我尝试:
var joinResult = from ms2 in _locations
join lrs in lrsLocations on new { ms2.LRS_ID, ms2.LRS_LOC_PT }
equals new { lrs.attributes.route_id, lrs.attributes.measure } into merge
from lrs in merge.DefaultIfEmpty()
select new { ms2, lrs };
问题是join lrs 抱怨:http://i.imgur.com/5EAeFmx.png(点击查看图片)
所以我要么需要一种方法将我的工作 LINQ 转换为 LEFT OUTER JOIN,要么了解问题在新问题中的含义,因为谷歌并没有给我太多的见解。
【问题讨论】:
-
检查以确保
LRS_ID与route_id的类型相同,与LRS_LOC_PT和measure相同。如果没有,请将它们转换为正确的类型。 -
LRS_ID 和 route_id 都是
string,LRS_LOC_PT 和measure 都是double?