【发布时间】:2011-11-22 19:51:51
【问题描述】:
我正在尝试匹配 LINQ 查询中邮政编码的前 5 个字符,并且我正在使用 SubString 来执行此操作。首先,我正在检查其中一个值是否为 NULL,因此它不会被炸掉。这是我正在使用的代码,但出现错误:
var lQuery = (from a in gServiceContext.CreateQuery("account")
let AccountName = !a.Contains("name") ? string.Empty : a["name"]
let Zip = !a.Contains("address1_postalcode") ? string.Empty : a["address1_postalcode"]
let State = !a.Contains("address1_stateorprovince") ? string.Empty : a["address1_stateorprovince"]
let Address = !a.Contains("address1_line1") ? string.Empty : a["address1_line1"]
let City = !a.Contains("address1_city") ? string.Empty : a["address1_city"]
where String.IsNullOrEmpty(Zip.ToString()) || String.IsNullOrEmpty(lLead.ZipCode) ? false : Zip.ToString().Substring(0,5).Equals(lLead.ZipCode.Substring(0,5))
select new
{
Name = AccountName
});
int c = lQuery.ToList().Count();
我得到的错误是:
“方法 'Where' 不能跟随方法 'Select' 或不受支持。请尝试根据支持的方法编写查询,或在调用不受支持的方法之前调用 'AsEnumerable' 或 'ToList' 方法。”
关于如何解决这个问题的任何想法或更好的方法的建议?
谢谢!
【问题讨论】:
标签: c# asp.net linq linq-to-sql c#-4.0