2009-03-28 6 views
0

テキスト型の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 

答えて

1

実際にStudio Managerを使用してSQLデータベースを調べ、実際にデータベースに格納されているものを確認してみましたか。そこのデータを見ることで、データの保存またはデータの検索に問題があるかどうかを知ることができます。

私は問題がデータの検索にあると思う。

1

あなたは空白を除去されていない、あなたがエラーを表示するために使用しているものは何でもすることを確認していますか? intanceについては、どのWebブラウザも\ r \ nを無視します。

あなたはエラーが何であるかを表示しないので、何が起こっているのか分かりにくいです。

EDIT:

問題は、あなたが後でデータを表示している方法であるようにそれは私には見えます。どのようにフォーマットが間違っていると判断していますか?

+0

エラーは、Erqテーブルに対応するためにLinqが作成したクラスです。私はSQL Server Management Studioを使用しています。 – tsilb

+0

私はそれを理解していますが、私はまだそれが何であるのか分かりません。あなたはその情報を与えません。 –