使用常量

时间:2016-07-11 18:43:22

标签: vb.net linq

我有一个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查询优先级的任何信息。

0 个答案:

没有答案