LINQ InsertOnSubmit теряет форматирование - PullRequest
0 голосов
/ 29 марта 2009

У меня есть таблица с обнуляемым полем типа text. Когда я запускаю InsertOnSubmit (), он вставляется успешно, но все форматирование теряется. В частности, я храню трассировку стека ошибки. Каждая запись была отформатирована в отдельной строке, и она выглядит хорошо, но когда я извлекаю ее из SQL, она теряет все свои crlf4.

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

Код:

string[] stacktrace = Environment.StackTrace.Replace("\r", "").Replace("\n", "").Replace("  at", "\n").Split('\n');
string stack = "";

for (int i = 0; i < stacktrace.Length; i++)
    stack += stacktrace[i].Trim() + "\r\n";

Error err = new Error();
err.Severity = (byte)sev;
err.Product = (byte)prod;
err.Location = stacktrace[0];
err.Title = message;
err.datetime = DateTime.Now;
err.StackTrace = stack;

dc.Errors.InsertOnSubmit(err);
dc.SubmitChanges();

Обратите внимание, что при отладке в приложении err.StackTrace и стек выглядят правильно до и после SubmitChanges ().

Определение ошибки:

[Column(Storage="_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public int ID // ...
[Column(Storage="_AID", DbType="Int")]
public System.Nullable<int> AID // ...
[Column(Storage="_Severity", DbType="TinyInt NOT NULL")]
public byte Severity
[Column(Storage="_Product", DbType="TinyInt NOT NULL")]
public byte Product
[Column(Storage="_Location", DbType="VarChar(255) NOT NULL", CanBeNull=false)]
public string Location
[Column(Storage="_Title", DbType="VarChar(255) NOT NULL", CanBeNull=false)]
public string Title
[Column(Storage="_Ex", DbType="Text", UpdateCheck=UpdateCheck.Never)]
public string Ex
[Column(Storage="_Notes", DbType="Text", UpdateCheck=UpdateCheck.Never)]
public string Notes
[Column(Storage="_datetime", DbType="DateTime NOT NULL")]
public System.DateTime datetime
[Column(Storage="_InnerException", DbType="Text", UpdateCheck=UpdateCheck.Never)]
public string InnerException
[Column(Storage="_StackTrace", DbType="Text", UpdateCheck=UpdateCheck.Never)]
public string StackTrace

[Association(Name="Activity_Error", Storage="_Activity", ThisKey="AID", IsForeignKey=true)]
public Activity Activity

Ответы [ 2 ]

1 голос
/ 29 марта 2009

Вы действительно пытались заглянуть в свою базу данных SQL с помощью Studio Manager и посмотреть, что на самом деле хранится в базе данных. Просматривая там данные, вы узнаете, есть ли проблема СОХРАНЕНИЕ или ПОЛУЧЕНИЕ данных.

Я думаю, что проблема заключается в поиске данных.

1 голос
/ 29 марта 2009

Вы уверены, что все, что вы используете для просмотра ошибок, не удаляет пробелы? Например, любой веб-браузер будет игнорировать \ r \ n.

Вы не показываете, что такое Error, поэтому немного трудно понять, что происходит.

EDIT:

Мне кажется, проблема в том, как вы потом просматриваете данные. Как вы определяете, что форматирование неверно?

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