Колонка БД с именем "Порядок" с помощью свободно используемого NHibernate - PullRequest
4 голосов
/ 27 января 2009

Я обнаружил, что в одной из таблиц устаревшей базы данных, над которой я работаю, есть столбец с именем "Order". К сожалению, я не могу изменить структуру БД.
Мой класс беглых 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, но я могу подтвердить, что проблема заключается в зарезервированном имени "Order".

Как это решить?

Обновление: , как предлагалось, в форме [Заказ] сработало. Спасибо!
Но теперь я связан только с SQL2005?

Ответы [ 2 ]

5 голосов
/ 27 января 2009

Попробуйте выставить ордер на тиках назад: `` Order . Поскольку FluentNH генерирует файлы HBM во время выполнения, я думаю, что это должно решить проблему.

2 голосов
/ 27 января 2009

Что такое закулисная база данных?

С помощью MS SQL вы сможете исправить это, заключив поле «Порядок» в квадратные скобки

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

Редактировать: квадратные скобки должны работать во всех версиях MS SQL, а также в MS Access. Не уверен насчет других платформ, но, скорее всего, он будет работать и на некоторых других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...