流畅的NHibernate列映射与保留字

时间:2009-10-09 17:33:18

标签: nhibernate fluent-nhibernate

我读过,使用后退勾号应该允许使用保留字。我正在使用SQL Server和Fluent NHibernate,并且列名为“File”。如果我用

映射它
"`File" 

尝试使用

[Fil]

所以它正确地添加了括号,但是从末尾删除了“e”。如果我将其映射为

"`Filee"

它使用

[File]

正确。

我做错了什么或者这是NHibernate或Fluent Nhibernate中的错误?

3 个答案:

答案 0 :(得分:20)

你需要把'放在两边,像这样:

"`File`"

正如@Astaar所说,完整的语法是:

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

答案 1 :(得分:5)

非常清楚,确切的语法是

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

答案 2 :(得分:4)

这里有非手动配置选项,如下所述:NHibernate: forcing square brackets in schema export?

以及另一种选择:Fluent NHibernate and PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException: Specified method is not supported

E.g。 FluentNhibernate中的SchemaMetadataUpdater.QuoteTableAndColumns(cfg)看起来像

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