Fluent NHibernate - автоматическое построение схемы - PullRequest
2 голосов
/ 01 августа 2009

Хорошо, у меня есть база данных, но нет таблиц в ней. У меня есть несколько классов сущностей. Я пытаюсь настроить Fluent NH для автоматического сопоставления с автоматическим экспортом схемы.

Во-первых, это возможно, верно?

Во-вторых, если так, что я здесь делаю не так:

   private ISessionFactory CreateSessionFactory()
    {
        return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2005
                .ConnectionString(c => c.Is(@"Data Source=foo;Initial Catalog=bar;Integrated Security=True")))
            .Mappings(m => m.AutoMappings.Add(AutoPersistenceModel.MapEntitiesFromAssemblyOf<Employee>()
                                                  .Where(t => t.Namespace.Contains("Entities"))))
            .ExposeConfiguration(BuildSchema)
            .BuildSessionFactory();
    }

    private void BuildSchema(Configuration cfg)
    {
        new SchemaExport(cfg).Create(false, true);
    }

Я получаю сообщение об ошибке «Ссылка на объект не установлена ​​для экземпляра объекта» в строке «.Where» выше. Если я снимаю условие .Where, я получаю сообщение об ошибке: «Операции с поздним связыванием не могут быть выполнены для типов или методов, для которых ContainsGenericParameters имеет значение true».

EDIT:

Некоторая дополнительная информация: я изменил выражение .Where, чтобы конкретно указать, какие объекты следует включать. То есть ".Where (t => t.Name.Contains (" Employee ")" и т. Д. Когда я это сделал, я получил сообщение об отсутствующей зависимости (NHibernate.ByteCode.Castle). Когда я решил это, он работает нормально Я до сих пор не понимаю , почему это работает, хотя.

1 Ответ

1 голос
/ 04 августа 2009

Я считаю, что сборка NHibernate.ByteCode.Castle используется для создания прокси-классов в NHibernate.

Я предполагаю, что когда вы пытались создать Схему или Конфигурацию, требовалась ссылка на генератор прокси. Вот почему добавление ссылки позволило решить вашу проблему.

Вы можете прочитать немного о прокси NHibernate здесь: http://nhforge.org/blogs/nhibernate/archive/2008/11/09/nh2-1-0-bytecode-providers.aspx

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