Мне нужно выбрать строки из таблицы базы данных, используя фильтрацию по столбцу типа xml.
таблица выглядит (короткая версия)
id
dbfield int
xmlfield xml
и я фильтрую это таким образом
IQueryable<Data.entity> q = from u in datacontex.entities
select u;
if (val1.HasValue)
q = q.Where( x => x.dbfield > val1.value)
if (val2.HasValue)
q = q.Where( x=> x.dbfield < val2.value)
if (!string.IsNullOrEmpty(searchString))
q = q.Where ( x=> x.xmlfield contains values from searchString)
XML в xmlfield очень прост, похоже,
<doc>
<item id="no">test/WZ/2009/04/02</item>
<item id="title">blabla</item>
...
Вопрос в том, как добавить условие WHERE в linq, и желательно, чтобы это разделение преобразовывалось в запрос ms-sql без обработки набора данных в приложении веб-службы.
Спасибо.