Я использую LINQ-to-SQL для создания и ведения таблицы в SQL, которая содержит XML-сообщения, отправленные в другое приложение, и соответствующий ответ.Каждая строка в таблице содержит подробности сообщения запроса или ответного сообщения и идентификатор связанного сообщения (идентификатор сообщения запроса в случае ответного сообщения и наоборот).
Это все работает хорошо, пока я не попытаюсь обновить столбец, содержащий идентификатор связанного ответного сообщения в строке сообщения запроса.Для этого я использую код вида:
using (var MessageStore = new MessageStore(CONNECTION_STRING))
{
// Get the Request message with the specified ID
var Request = MessageStore.XMLMessages.SingleOrDefault(X => X.Id == RequestId);
// Update the row with the ID of the associated response message
if (Request != null)
{
Request.LinkedMessageId = ResponseId;
MessageStore.SubmitChanges();
}
}
Однако вызов SubmitChanges выдает исключение:
SQL Server does not handle comparison of NText, Text, Xml, or Image data types.
Похоже, SQL сравнивает данные XML вобновленное сообщение с оригиналом, но мне это не нужно.Есть ли способ просто обновить какой-то другой столбец в строке без привязки SQL для сравнения данных XML?Я пытался использовать анонимные типы, но они доступны только для чтения, поэтому я не могу обновить значение и затем сохранить его.
Любой совет будет высоко оценен.