4

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?

Ronnie
  • 4,959
  • 10
  • 51
  • 69

2 Answers2

5

Try putting Order in back ticks: ``Order. Since FluentNH is generating HBM files at runtime I imagine that should fix the problem.

Ryan Rinaldi
  • 4,119
  • 2
  • 22
  • 22
2

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

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

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.

BradC
  • 39,306
  • 13
  • 73
  • 89