我发过一次,但我的信息有点太模糊了,所以我再试一次。
nHibernate
/Fluent nHibernate
似乎正在截断或从我提交到数据库的字符串中“剥离”某些字符。例如,如果我提交字符串This\nis\na\nblock\nof\ntext\n\with\nreturns
,该\n
符号代表回车。我希望这些保持不变,因为稍后,当数据被读回时,它将被MarkdownDeep解析
但是,我注意到\n
当数据库提交时,该符号特别被“剥离”。我一直执行调试ISession.SaveOrUpdate(object)
,我可以确认数据没有改变,直到我可以明显地跟踪调试。但后来我去查看数据库中的记录,它已经被去掉了这个符号。
如果我String.Replace("\n","\\n"))
在文本上使用它,它实际上会正常工作。但这似乎不是存储所有内容的明智方法。这意味着我必须不断记住哪些字段可能存在此问题并在中间进行逻辑处理。
是否有我遗漏的设置nHibernate/Fluent nHibernate
强制它删除这些数据?
调试代码路径
按照我的代码路径,它是这样的。
ASP.NET MVC View (textarea) -> This\nis\na\nblock\nof\ntext\n\with\nreturns
ASP.NET MVC Model (Json) -> This\nis\na\nblock\nof\ntext\n\with\nreturns
ASP.NET MVC Controller Parameter -> This\nis\na\nblock\nof\ntext\n\with\nreturns
ISession.SaveOrUpdate -> This\nis\na\nblock\nof\ntext\n\with\nreturns
Database Record -> This is a block of text with returns
所以问题显然发生在这个ISession
层面上。