テキスト型のnullableフィールドを持つテーブルがあります。 InsertOnSubmit()を実行すると、挿入は成功しますが、すべての書式は失われます。具体的には、エラーのスタックトレースを保存しています。各エントリは独自の行に書式設定されていて見栄えは良いですが、SQLから取得するとcrlf4がすべて失われます。LINQ InsertOnSubmitが書式設定を失う
私は他のテキストフィールドの書式設定を保持しているようですが、古いADO.NETを使用して挿入されています。これはどのように救済できますか?
コード:私はアプリ、err.StackTraceにデバッグすると、スタック場合のSubmitChangesの前と後に正しい見えること
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();
注()。
エラーの定義:
[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
エラーは、Erqテーブルに対応するためにLinqが作成したクラスです。私はSQL Server Management Studioを使用しています。 – tsilb
私はそれを理解していますが、私はまだそれが何であるのか分かりません。あなたはその情報を与えません。 –