繁体   English   中英

LINQ InsertOnSubmit丢失格式

[英]LINQ InsertOnSubmit loses formatting

我有一个表,其文本类型为可空字段。 当我运行InsertInSubmit()时,它会成功插入,但是所有格式都会丢失。 具体来说,我正在存储错误的堆栈跟踪。 每个条目都已格式化为自己的行,看起来不错,但是当我从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();

请注意,如果我调试该应用程序,则在SubmitChanges()之前和之后err.StackTrace和堆栈看起来都是正确的。

错误定义:

[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

您确定用于查看错误的内容不会剥离空白吗? 例如,任何Web浏览器都将忽略\\ r \\ n。

您没有显示Error的定义,因此很难知道发生了什么。

编辑:

在我看来,问题在于您随后如何查看数据。 您如何确定格式错误?

您是否真的尝试过使用Studio Manager查看SQL数据库并查看数据库中实际存储的内容。 通过查看那里的数据,您可以知道存储数据或检索数据是否存在问题。

我认为问题在于数据的检索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM