我有一个sql server查询,如下所示:
select p.*
from
parcel p
inner join
jurisdiction j
on (j.unit_type = 'RM' and j.grp_code = right(p.jurisdiction,3)) or
(j.jurisdiction_code = p.jurisdiction)
基本上,如果unit_type是' RM',请抓住每个以相同的3个字符结尾的司法管辖区。如果unit_type不是' RM',则匹配管辖区。
我试图创建一个等效的vb.net linq查询表达式。这是我的尝试:
From p in db.parcel
Join j in db.jurisdiction
On p.jurisdiction.substring(p.jurisdiction.length-3,3) Equals h.grp_code
And j.unit_type Equals "RM"
OR p.jurisdiction Equals j.jurisdiction
由于j.unit_type等于" RM",上述查询无法正常工作。我得到一个错误,说我必须在等式的两边使用范围变量(它只是赢得了常数)。
我也不确定关于命令的优先权linq将解决和/或组合(因为我似乎不能使用括号将我想要的条件分组),并且&#39 ;已经能够通过谷歌找到关于linq查询优先级的任何信息。