与保留字功能NHibernate列映射(Fluent NHibernate Column Mappi

2019-07-21 18:29发布

我读过,使用反勾'应该允许使用的保留字。 我使用的是SQL Server和流利的NHibernate和有列名“文件”。 如果我映射它与

"`File" 

它会尝试使用

[Fil]

所以它的正确添加括号,但最终去掉了“E”。 如果我映射它作为

"`Filee"

它用

[File]

正确。

难道我做得不对或这是NHibernate的或功能NHibernate的错误?

Answer 1:

你需要把`两侧,像这样:

"`File`"

作为@Astaar说,完整的语法是:

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


Answer 2:

要非常清楚,确切的语法是

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


Answer 3:

有此非手动配置选项,这里介绍: NHibernate的:强迫方括号中的架构出口?

以及替代: 功能NHibernate和PostgreSQL,SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException:指定的方法不支持

SchemaMetadataUpdater.QuoteTableAndColumns(cfg)这FluentNhibernate会看起来像

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


文章来源: Fluent NHibernate Column Mapping with Reserved Word