2010-03-15 88 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