I discovered that one of the tables of a legacy db I'm working on has a colum named "Order".
Unfortunately I cannot change the DB structure.
My Fluent NHibernate class looks like
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");
}
}
I do not know if the problems is FluentNH or NHibernate itself but I can confirm that the problem lies in the "Order" reserved name.
How to solve this?
Update: as suggested putting in the form [Order] worked. Thanks!
But now I'm linked only to SQL2005?
What's the database behind the scenes?
With MS SQL, you should be able to fix this by surrounding the "Order" field with square brackets
Edit: square brackets should work in all version of MS SQL, as well as MS Access. Not sure about other platforms, but its likely to work in some others, too.
Try putting Order in back ticks: ``Order
. Since FluentNH is generating HBM files at runtime I imagine that should fix the problem.