Я опубликовал это один раз, но я был слишком расплывчат в своей информации, поэтому я пытаюсь снова.
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
.