2011-12-19 29 views
1

在我的項目中,我正在使用XML文件進行數據存儲。我正在用linq-to-xml查詢訪問該文件。實際上,我已經從我的SQL服務器數據庫創建了該XML文件,但由於SQL中的表格包含多於50列,因此生成的XML文件也具有超過50個元素...Linq-to-Xml查詢是否支持C#中的intellisence?

現在,在應用查詢I最初將該XML文件加載到XDocument對象中,然後在其上應用查詢。

我的主要問題是,因爲它包含超過50個元素,所以很難寫出沒有智能支持的查詢。爲什麼它不支持intellisence?我做錯了什麼?我能做些什麼來獲得智能支持?

+0

不知道它是否是一個完美的誘惑,但檢查這個問題 - - 答案是你可以檢查這個問題 - http://stackoverflow.com/questions/21912/intellisense-for-xelement-objects-with-xml-schema - 答案是你可以在C#中將Linq轉換爲Xml intellisense。 – 2011-12-19 11:06:02

回答

4

LINQ to XML基於字符串,並不侷限於遵循某種模式的文檔。這就是你沒有得到IntelliSense的原因,VS沒有關於模式的信息。

如果這對你來說真的很重要,也許使用類似xsd.exe的類來生成表示該模式的類會更好。

1

Linq to Xml無法獲得智能感知。 這是因爲您在運行時加載文件,並且您希望它具有編譯時智能感知。如果你在運行時加載一個不同的文件,你會得到一個編譯時錯誤嗎?

你可以做的是從你的Xml文件生成類,然後將你的XML文件反序列化到這些類中。您可以使用Linq To Objects來訪問數據。

Here is some documentation創建您的類。