В LINQPad есть ли способ сериализовать столбец типа XML в виде строки?

#linqpad

#linqpad

Вопрос:

У меня есть столбец XML в SQL. И в нем есть искаженные данные. Что вызывает ошибку «Существует несколько корневых элементов».когда я запускаю MyTable.Take(4).Dump();

например

 <cy>
  <n>NameA</n>
  <p>true</p>
</cy>
<cy>
  <n>NameB</n>
  <p>false</p>
</cy>
  

Есть ли способ указать LINQPad не сериализовать столбец XML и предоставить его в виде строки?

К сожалению, данные связаны со многими местами, поэтому я не могу сразу обернуть их корневым элементом в базе данных.

Комментарии:

1. интересно, что когда я пытаюсь MyTable.Take(4).Dump(); , я получаю ту же ошибку, что и вы, но MyTable.Take(4).Select(row => row.XmlColumnName.ToString()).Dump(); это работает. Итак, я предполагаю, что ответ заключается в том, чтобы спроецировать столбец на строку таким образом?

2. Это определенно обходной путь, и я ценю это. Однако я хотел бы оставить вопрос открытым, на случай, если @joe-albahari может предоставить метод сериализации на основе свойств, как он это сделал для параметров исключения свойств. Еще раз спасибо

3. вы видели linqpad.net/CustomizingDump.aspx ? 🙂

4. Я говорил об этом, когда упоминал exclude метод. 🙂 Отличный улов! К сожалению, ошибка, вызванная ранее .Dump() .Take(4) . Мне нужно иметь возможность взаимодействовать с LINQPad.User.* запросами на начальном уровне сериализации.

Ответ №1:

Последняя бета-версия LINQPad, версия 5.10.06, позволяет вам получать доступ к столбцам XML в виде строк:

НОВОЕ / УЛУЧШЕННОЕ:

В диалоговом окне дополнительных свойств подключения SQL установлен новый флажок, чтобы сопоставлять столбцы XML с .NET string s вместо XElement s. Это позволяет вам запрашивать таблицы с искаженным XML без ошибок.