var results = from formNumber in context.DetailTM
join c in context.ClaimPeriodTM on formNumber.ClaimPeriod equals c.Cid
where formNumber.FormNumber.StartsWith(fNumber)
&& formNumber.RegistrationNumber != registrationNumber
select new { RegNo = formNumber.RegistrationNumber,
CP = c.ClaimPeriod, FormNo = formNumber.FormNumber };
与.StartsWith
的AND CLAUSE不起作用。如果我使用==运算符,查询工作正常。我尝试在where子句中添加括号,但它没有帮助。知道缺少什么。先谢谢你。
答案 0 :(得分:0)
尝试一些非常基本的内容,例如“&& true == false”,看看是否失败。也颠倒顺序。如果颠倒顺序,它仍然是第二个失败的子句吗?
StartsWith没有任何内容会导致此行为。这里还有别的东西。修剪并移动元素,直到找出真正的错误。
答案 1 :(得分:0)
FormNumber的数据库类型是什么?如果它的char(而不是varchar),则可能需要修剪比较的一侧或两侧。
where
formNumber.FormNumber.Trim().StartsWith(fNumber.Trim())
&& formNumber.RegistrationNumber != registrationNumber
答案 2 :(得分:0)
与jrummells回答相同,只是附加评论的目标。
formNumber.RegistrationNumber!= registrationNumber
在此检查数据库类型。如果它们是固定长度(char或nchar),则可能需要进行一些修剪。