Свободное отображение столбцов 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`");
Другие вопросы по тегам