DB Column named “Order” with Fluent NHibernate

戏子无情 提交于 2019-12-13 13:15:21

问题


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?


回答1:


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




回答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.



来源:https://stackoverflow.com/questions/484381/db-column-named-order-with-fluent-nhibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!