Свободное отображение столбцов NHibernate с зарезервированным словом
Я читал, что использование обратной галочки `должно позволять использовать зарезервированные слова. Я использую SQL Server и Fluent NHibernate и имею имя столбца "Файл". Если я сопоставлю это с
"`File"
он пытается использовать
[Fil]
так что это правильно добавляет скобки, но опускает "е" с конца. Если я сопоставлю это как
"`Filee"
оно использует
[File]
правильно.
Я делаю что-то не так или это ошибка в NHibernate или Fluent Nhibernate?
3 ответа
Вам нужно поставить `с обеих сторон, вот так:
"`File`"
Как говорит @Astaar, полный синтаксис:
Map(x => x.File).Column("`File`");
Для этого есть не ручные параметры конфигурации: NHibernate: принудительное использование квадратных скобок при экспорте схемы?
а также альтернатива: Fluent NHibernate и PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException: указанный метод не поддерживается
Например SchemaMetadataUpdater.QuoteTableAndColumns(cfg)
который в FluentNhibernate будет выглядеть примерно так
var config = Fluently.Configure()
...
...
.ExposeConfiguration(cfg => SchemaMetadataUpdater.QuoteTableAndColumns);
Чтобы быть совершенно ясным, точный синтаксис будет
Map(x => x.File).Column("`File`");