4

我发现我正在处理的遗留数据库的一个表有一个名为“Order”的列。不幸的是,我无法更改数据库结构。
我流利的 ​​NHibernate 类看起来像

 public class SiteMap : AutoMap<Site>
{
    public SiteMap() {
        WithTable("Sites");
        Id(x => x.ID, "Id")
            .WithUnsavedValue(0)
            .GeneratedBy.Identity();
        Map(x => x.Name, "Name");
        //various columns mapping and then...
        Map(x => x.SiteOrder, "Order");
    }
}

我不知道问题是 FluentNH 还是 NHibernate 本身,但我可以确认问题出在“订单”保留名称上。

如何解决这个问题?

更新:按照建议输入 [Order] 表格有效。谢谢!
但现在我只链接到 SQL2005?

4

2 回答 2

5

尝试将 Order 放在反引号中:``Order . 由于 FluentNH 在运行时生成 HBM 文件,我想这应该可以解决问题。

于 2009-01-27T17:39:55.520 回答
2

幕后的数据库是什么?

使用 MS SQL,您应该能够通过用方括号将“订单”字段括起来来解决此问题

Map(x => x.SiteOrder, "[Order]");

编辑:方括号应该适用于所有版本的 MS SQL 以及 MS Access。不确定其他平台,但它也可能在其他一些平台上工作。

于 2009-01-27T17:41:08.060 回答