Linq-to-Xml查询是否支持C#中的intellisense?

时间:2011-12-19 10:57:55

标签: c# linq-to-xml

在我的项目中,我使用XML文件进行数据存储。我正在使用linq-to-xml查询访问该文件。实际上我已经从我的SQL服务器数据库创建了这个XML文件,但由于SQL中的表包含了50多个列,因此生成的XML文件也有50多个元素......

现在,在应用查询时,我最初在XDocument对象中加载该XML文件,之后对其应用查询。

我的主要问题是,由于它包含超过50个元素,因此在没有智能支持的情况下编写查询非常困难。为什么它不支持intellisence?我做错了什么?我能做些什么来获得智慧支持?

2 个答案:

答案 0 :(得分:4)

LINQ to XML基于字符串,并不局限于遵循某些模式的文档。这就是你没有获得IntelliSense的原因,VS没有关于架构的信息。

如果这对您来说非常重要,可能使用像xsd.exe这样的东西生成代表架构的类会更适合您。

答案 1 :(得分:1)

无法将Linq的intellisense转换为Xml。 这是因为您在运行时加载文件,并且您希望它具有编译时智能感知。如果你在运行时加载一个不同的文件怎么办,那么你会得到一个编译时错误吗?

您可以做的是从Xml文件生成类,然后将XML文件反序列化为这些类。您可以使用Linq To Objects访问数据。

Here is some documentation用于创建课程。