我有一个很长的LinqtoSQl查询,其中几个参数我不强迫用户指定任何东西。我开始使用Select Case语句来测试参数字符串的长度是否大于0或者是否大于0。但是我意识到必须测试每种可能性并根据每种可能性创建查询。LINQTOSql缺少参数问题
我做了一些搜索并跑过一篇帖子,回复帖子的人说这个帖子否定了查询的一部分||。在做了一些更多的搜索(并且实现了很少的C#技能后,我确实知道||是OR条件语句),我意识到这对我没有帮助。
我想我想要做的是一样的东西
Dim r = From x in db.List _
(if firstName.Length < 1 then ignore query
else)where x.firstName = firstName _
(if lastName.Length < 1 then ignore query
else)where x.LastName = lastName _
Select x
我KNW必须有比通过这个IfElse'ing我的方式更好的办法......我正要做一些时髦的东西与一个StringBuilder,但我不知道它会“火”,即:
Dim sb as New StringBuilder
sb.Append("Dim r = From x in db.List _")
If firstName.Length < 1 then
sb.Append("Where x.firstName = firstName")
ughh,请告诉我有一个更好的办法...
感谢您的帮助!
我想我需要你来翻译这对我来说... 我喜欢这个想法,但... 我试图 昏暗查询作为的IQueryable(名单)= db.List query.Where(x => x.firstName == firstName) 但intellesense去尝试输入其他东西,然后我得到警告和错误,未声明x ... 谢谢! – wali 2010-07-16 19:47:08
只是想通了... query.Where(函数(x)x.firstName = firstName) 傻VB! 非常感谢! – wali 2010-07-16 20:08:20