Asp.MVC + AR + Пространственный NHibernate - PullRequest
0 голосов
/ 21 июня 2011

У меня есть следующая настройка в тестовом приложении, которое я пытаюсь:

  1. ASP.MVC
  2. Замок ActiveRecord
  3. NHibernate Spatial
  4. PostGIS

Сначала я знаю, что это немного сложно, но вот в чем дело. У меня есть контроллер, который работает правильно, и у меня есть мои модели. Они живут в другом проекте, но в том же решении. Код для обоих доступен.

У меня есть простая пользовательская модель, которая, кстати, не имеет ничего пространственного. У меня есть одна модель, которая использует Point, но это представление и действие не работают с этими данными.

Это исключение:

NHibernateMappingException {"Вызываемый конструктор создает исключение."}

InnerEx: {"Столбец GeometryType был объявлен, но не настроен пространственный диалект"}

Похоже, что в первый раз, когда я отлаживаю (или первые несколько раз), я получаю исключение, говорящее мне, что я не могу найти никакого пространственного диалекта. Это странно Давайте посмотрим код:

Это мой метод запуска приложения:

    protected void Application_Start()
    {
        Ignition.StartActiveRecord();

        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }

А это Ignition.StartActiveRecord:

    public static void StartActiveRecord()
    {
        XmlConfigurationSource source = new XmlConfigurationSource(@"path.xml");
        ActiveRecordStarter.Initialize(source, GetActiveRecordTypes());

        foreach (Configuration cfg in ActiveRecordMediator.GetSessionFactoryHolder().GetAllConfigurations())
        {
            cfg.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(cfg));
            //Metadata.AddMapping(cfg, MetadataClass.GeometryColumn);
            //Metadata.AddMapping(cfg, MetadataClass.SpatialReferenceSystem);
        }
    }

Мой веб-проект содержит ссылки на все необходимые библиотеки:

  • NHibernate
  • ActiveRecord
  • NHibernate Spatial
  • NHibernate Spatial (PostGIS)

Помощь !? это очень раздражает, и я не могу представить это в производственной среде!

Спасибо!

1 Ответ

0 голосов
/ 15 сентября 2011

Сообщение об исключении: «Столбец GeometryType был объявлен, но не настроен пространственный диалект». Это значит ... вам нужно настроить диалект PostGIS:)

<add key="dialect" value="NHibernate.Spatial.Dialect.PostGisDialect,NHibernate.Spatial.PostGis" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...