LINQ问题在哪里条款
问题描述:
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 };
AND条款与.StartsWith
不起作用。如果我使用==运算符,查询工作正常。我尝试在where子句中添加括号,但它没有帮助。任何想法缺少什么。先谢谢你。LINQ问题在哪里条款
答
尝试一些非常基本的东西,如“& & true == false”,看看是否失败。也颠倒顺序。如果您颠倒了订单,它仍然是第二个失败的条款吗?
没有什么关于StartsWith应该引起这种行为。这里还有其他事情要做。修剪和移动元素,直到你隔离真正的错误。
答
FormNumber的数据库类型是什么?如果它的char(而不是varchar),那么你可能不得不修剪比较的一侧或两侧。
where
formNumber.FormNumber.Trim().StartsWith(fNumber.Trim())
&& formNumber.RegistrationNumber != registrationNumber
答
与jrummells相同,只是针对额外的评论。
formNumber.RegistrationNumber!= registrationNumber
这里检查数据库类型。如果它们的长度固定(char或nchar),则可能需要进行一些修整。
什么是错误notsupportexception? – Nix 2010-03-25 19:43:33
如果没有错误,哪些formNumber项目被错误地包含或排除?我们只是没有足够的数据来帮助。 – 2010-03-25 19:47:07
formNumber.RegistrationNumber!=注册号 不起作用。即 formNumber.RegistrationNumber!= 1234 该查询告诉不显示1234,但它仍显示 – Kris1511 2010-03-25 19:51:12