Подтвердить что ты не робот

Свободное сопоставление столбцов NHibernate с зарезервированным словом

Я читал, что использование обратного тика `должно допускать использование зарезервированных слов. Я использую SQL Server и Fluent NHibernate и имею имя столбца "Файл". Если я сопоставляю его с

"`File" 

он пытается использовать

[Fil]

поэтому он правильно добавляет скобки, но отбрасывает "e" с конца. Если я нарисую его как

"`Filee"

он использует

[File]

правильно.

Я делаю что-то неправильно или это ошибка в NHibernate или Fluent Nhibernate?

4b9b3361

Ответ 1

Вам нужно поставить `с обеих сторон, например:

"`File`"

Как говорит @Astaar, полный синтаксис:

Map(x => x.File).Column("`File`");

Ответ 2

Чтобы быть совершенно ясным, точный синтаксис был бы

Map(x => x.File).Column("`File`");

Ответ 3

Для этого здесь не предусмотрены опции ручной настройки: NHibernate: принудительные квадратные скобки при экспорте схемы?

а также альтернативный вариант: Fluent NHibernate и PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException: указанный метод не поддерживается

например. SchemaMetadataUpdater.QuoteTableAndColumns(cfg), который в FluentNhibernate будет выглядеть как

var config = Fluently.Configure()
   ...
   ...
   .ExposeConfiguration(cfg => SchemaMetadataUpdater.QuoteTableAndColumns);