как сохранить сериализуемый объект в поле базы данных - PullRequest
0 голосов
/ 15 февраля 2011

Я использую linq to sql, и мне нужно сохранить несколько наших сериализуемых объектов в поле в нашей базе данных sql server. Я определил поле как varbinary (MAX), но я не уверен на 100%, что это правильно. Итак, кто-нибудь знает, как я могу сохранить объект в этом поле и затем прочитать его обратно? Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Я получил объект для сериализации, но у меня возникла проблема с сохранением полученного XML. Поле объекта определено как xml, поэтому в linq to sql это xelement. Я использую следующий код для сериализации и получения строки XML. Но когда я пытаюсь загрузить строку xml в xelement, я получаю ошибку «Недопустимые символы в пути». Однако когда я смотрю на сгенерированный xml, я не вижу никаких недопустимых символов. Вот сгенерированный xml.

using (StringWriter sw = new StringWriter())
{
      var x = new XmlSerializer(sessionObject.ObjectToStore.GetType());
      x.Serialize(sw, sessionObject.ObjectToStore);
      sessionRecord.sessionObject = XElement.Load(sw.ToString());
}

<?xml version="1.0" encoding="utf-16"?>
<SerializableJobSearch xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Keywords>electronics</Keywords>
  <StateList />
  <Radius>50</Radius>
  <City />
  <State />
  <DisciplineIdList />
  <IndustryIdList />
  <Direct>false</Direct>
  <TempHire>false</TempHire>
  <Contract>false</Contract>
  <PerHour>false</PerHour>
  <PerYear>false</PerYear>
  <DegreeLevel />
  <IncludeJobsRequiringLess>false</IncludeJobsRequiringLess>
  <AddedWithin>0</AddedWithin>
  <OrderBy>Rank</OrderBy>
  <OrderByRank>true</OrderByRank>
  <resultsPerPage>50</resultsPerPage>
  <NeedToMake />
</SerializableJobSearch>
0 голосов
/ 15 февраля 2011

Я думаю, что это зависит от формата, в котором сериализуются объекты. Например, если вы сериализуете в xml, то сервер sql (по крайней мере, последняя версия) поддерживает тип xml.Если вы действительно сериализуете в двоичный файл, то, вероятно, все в порядке с двоичным кодом.Выбор типа БД, аналогичного типу сериализации, минимизирует преобразование, связывающее тип БД с типом объекта.

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