Ни при каких обстоятельствах вы не получите эту ошибку, если значение столбца XML равно NULL
.
Однако вы получите эту ошибку, если поле содержит некорректный XML, как предполагает ошибка.
SQL Server позволяет вам сделать это:
UPDATE tab1
SET Meta = 'blah'
WHERE id = 123
Очевидно, что строка "бла" является недопустимым XML, но SQL Server по-прежнему допускает это. Linq to SQL этого не делает, потому что он действительно попытается загрузить этот XML в XElement
. Если вы запустите запрос с этим значением в столбце, вы получите точно такую же ошибку: Недопустимые данные на корневом уровне .
Чтобы исправить эту ошибку, вам нужно исправить искаженный XML, который присутствует в базе данных.