База данных SQL с полями XML, выберите в соответствии с XElement с помощью LINQ - PullRequest
0 голосов
/ 21 января 2010

У меня есть таблица в базе данных SQL, где конфигурация таблицы соответствует

ID
Name string
data xml

где поле данных может (но не обязательно) содержать элемент-потомок

<config>Some value...</config>

Используя LINQ, я хочу выбрать все строки, в которых есть элемент data xml, который содержит элемент config со значением ... скажем, 17.

Мой подход был примерно таким:

var query = from x in db
            from y in x.data.descendants("config")
            where y.Value == "17"
            select x;

Но это вызывает исключение из-за того, что значение недействительно.

Как мне сформулировать этот запрос?

С уважением, Каспер

1 Ответ

1 голос
/ 03 февраля 2010

Я почти уверен, что Linq 2 SQL не поддерживает то, что вы пытаетесь сделать. Вам, вероятно, понадобится написать пользовательский оператор SQL или использовать пользовательскую функцию, как описано в решении этого вопроса SO: Может ли LINQ to SQL запрашивать поле XML на стороне DB-сервера?

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