Поддерживают ли запросы Linq-to-Xml интеллигентность в C #? - PullRequest
1 голос
/ 19 декабря 2011

В своем проекте я использую XML-файл для хранения данных.Я обращаюсь к этому файлу с помощью запросов linq-to-xml.На самом деле я создал этот XML-файл из своей базы данных SQL-сервера, но поскольку таблицы в SQL содержали более 50 столбцов, полученный XML-файл также содержит более 50 элементов ...

Теперь при примененииЗапросы Я изначально загружаю этот XML-файл в объект XDocument, а затем применяю запросы к этому.

Моя главная проблема заключается в том, что, поскольку он содержит более 50 элементов, очень трудно писать запросы без поддержки интеллектуального анализа.Почему это не поддерживает интеллигентность?Что я сделал не так?Что я могу сделать, чтобы получить поддержку Intellisence?

Ответы [ 2 ]

4 голосов
/ 19 декабря 2011

LINQ to XML основан на строках и не ограничивается документами, которые следуют некоторой схеме. Вот почему вы не получаете IntelliSense, VS не имеет информации о схеме.

Если это действительно важно для вас, возможно, лучше использовать что-то вроде xsd.exe для генерации классов, представляющих схему.

1 голос
/ 19 декабря 2011

Невозможно получить intellisense для Linq в Xml. Это потому, что вы загружаете файл во время выполнения и ожидаете, что он будет иметь время компиляции. Что если вы загрузите другой файл во время выполнения, вы получите ошибку времени компиляции?

Что вы можете сделать, это сгенерировать классы из вашего XML-файла и затем десериализовать ваш XML-файл в эти классы. Вы можете использовать Linq To Objects для доступа к данным.

Вот некоторая документация для создания ваших классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...