【问题标题】:DB Column named "Order" with Fluent NHibernate使用 Fluent NHibernate 命名为“Order”的 DB 列
【发布时间】:2009-01-27 17:36:05
【问题描述】:

我发现我正在处理的旧数据库的其中一个表有一个名为“Order”的列。 不幸的是,我无法更改数据库结构。
我的 Fluent 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?

【问题讨论】:

    标签: nhibernate fluent-nhibernate


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      幕后的数据库是什么?

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-01-07
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多