Vb.net 查询LinqToSql结果

Vb.net 查询LinqToSql结果,vb.net,linq,Vb.net,Linq,假设我有一个Persons表,有两列: ID(唯一标识符) 姓名(NChar) 我需要先找到我所有的人: Dim data = (From p In Persons Select p).ToList 既然我在数据变量中找到了所有的人,那么可以使用字符串查询来查询这个结果吗?像 Dim filtered = (From p In data Select p).Where("Name Like '%John%').ToList ? 我需要动态构建查询 谢谢 我使用querystring作为动

假设我有一个Persons表,有两列:

  • ID(唯一标识符)
  • 姓名(NChar)
我需要先找到我所有的人:

Dim data = (From p In Persons Select p).ToList
既然我在数据变量中找到了所有的人,那么可以使用字符串查询来查询这个结果吗?像

Dim filtered = (From p In data Select p).Where("Name Like '%John%').ToList
?

我需要动态构建查询

谢谢

我使用querystring作为动态值的示例,并在类似sql的方法中使用它, 这与sql类似,在您的示例中是“request.querystring[“search”]值为john”

尝试以下方法:

from p in data
where SqlMethods.Like(p.Name, "%"+parameter+"%")
select p;

示例中的参数应为John

这对SQL注入是开放的?我刚才回答了他的问题,为了防止SQL注入,然后对querystring变量进行一些额外的验证。如果从一开始就将参数硬编码为“john”,那么动态生成查询有什么意义?@Renato。。。谢谢假设我的表也有“生日”,我将如何在2010年1月1日至2010年12月31日之间选择Name=John和生日?在我的真实应用程序中,客户提供搜索条件,实际上我不知道前面的字段-因此我需要动态构建“选择”。)从数据中的p开始,其中p.Name=名称和(p.Date>=开始日期和p.Date
from p in data
where SqlMethods.Like(p.Name, "%"+parameter+"%")
select p;