我发现我正在处理的遗留数据库中的一个表有一个名为“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本身,但我可以确认问题出在“订单”保留名称上。
如何解决这个问题?
更新:按照建议的顺序[订单]工作。谢谢!
但是现在我只链接到SQL2005?
答案 0 :(得分:5)
尝试将Order置于后面的刻度:``Order 。由于FluentNH在运行时生成HBM文件,我想应该解决问题。
答案 1 :(得分:2)
幕后的数据库是什么?
使用MS SQL,你应该能够通过用方括号
包围“Order”字段来解决这个问题Map(x => x.SiteOrder, "[Order]");
编辑:方括号应该适用于所有版本的MS SQL以及MS Access。不确定其他平台,但它也可能在其他平台上工作。