2009-01-27 16 views
4

我发现我正在使用的遗留数据库中的一个表有一个名为“Order”的列。 不幸的是我不能改变数据库结构。
我的功能NHibernate类看起来像用流畅的NHibernate命名为“Order”的DB列

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?

回答

5

试着把订单放在后面的勾号中:``Order 。由于FluentNH在运行时生成HBM文件,我想应该可以解决这个问题。

2

什么是幕后数据库?

与MS SQL,你应该能够通过周围用方括号

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

编辑“订单”字段来解决这个问题:方括号中的所有版本的MS SQL的工作,以及MS访问。不确定其他平台,但它也可能在其他平台上工作。

相关问题