2010-03-15 79 views
0

我是Linq的新手。我有一个我在VB.NET 2.0中编写的应用程序。很好用,但我想将这个应用程序切换到Linq。我使用ADO.NET将XML加载到数据表中。 XML文件中有大约90,000条记录。然后,我使用Datatable.Select对该Datatable执行搜索。搜索控件是一个自由格式的文本框。所以如果用户输入的话就会立即搜索。输入的任何其他条款将继续限制结果。所以你可以输入Bob,或输入Bob Barker。或者输入Bob Barker Price是正确的。输入的标准越多,结果越窄。我将结果绑定到一个gridview。VB.NET从ADO.NET切换到LINQ

前进什么我需要做什么?从较高的层面来看,我认为我需要:

1)转到项目属性 - >高级编译器设置,并将目标框架从2.0更改为3.5。 2)添加对System.XML.Linq的引用,将Imports语句添加到类中。

所以我不确定之后最好的方法是什么。我假设我使用XDocument.Load,然后我的搜索子例程运行在XDocument上。对于这种重复搜索,我只是做标准的Linq查询吗?像这样:

Dim people = 

from phonebook in doc.Root.Elements("phonebook") 

where phonebook.Element("userid") = "whatever" 

select phonebook 

关于如何最佳实现的任何提示?

+0

你想对XML或表使用LINQ吗? – SLaks 2010-03-15 14:59:13

+0

有重复的搜索,所以XML文件需要在内存中,所以搜索速度很快。当应用程序加载时,我在单独的进程中加载​​XML文件。希望能回答你的问题。 – 2010-03-15 15:05:40

回答

1

此视频演示如何从XML文档启用智能感知。我广泛使用它。希望它有帮助: http://www.asp.net/learn/linq-videos/video-216.aspx

然后,您可以使用已经选择的项目列表来排除结果集中的项目。

+0

谢谢我向你提供了有用的链接。我会检查一下,看看它是否有助于我继续前进。如果是这样,我会标记为答案。 – 2010-03-15 15:36:02

+0

在asp.net网站上有关于linq教程的全部内容。但因为我是一个新手,所以我只能为每个答案发布一个链接。你可以在asp.net网站上搜索“linq tutorial”。这些视频非常有帮助。 http://www.asp.net/learn/linq-videos/ – 2010-03-15 16:03:14

1

首先,我应该提到var用于C#而不是VB.Net(使用dim)。接下来,您可以根据需要随时重复使用针对xml的linq查询。除非在内存中修改了xml,否则你应该没问题。

+0

感谢您注意到,我意识到我只是在查看一些关于如何启动和运行Linq的文章,并且代码片段是用C#编写的,而且我很快手动将其转换。我会更新帖子。 – 2010-03-15 15:33:30