Настроить FluentNHibernate, FluentMappings.AddFromAssembly;имея в виду - PullRequest
3 голосов
/ 27 января 2011

Линия

    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Product>()

Что это делает? Будет ли он искать какой-либо класс в сборке класса Product, производной от ClassMap? Или в чем логика? Могу ли я просто разместить здесь любой случайный класс этой сборки и ожидать, что он найдет все классы отображения в этой сборке?

    private static ISessionFactory CreateSessionFactory()
    { 
          return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008
            .ConnectionString(Properties.Settings.Default.FnhDbString)
            .Cache(c => c
                .UseQueryCache()).ShowSql())
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Product>()
            .Conventions.Add(FluentNHibernate.Conventions.Helpers.DefaultLazy.Never()))
            .BuildSessionFactory();
    }

1 Ответ

4 голосов
/ 27 января 2011

Я всегда думал, что когда вы используете AddFromAssemblyOf, свободный попытается отобразить КАЖДЫЙ класс в сборке.

Поэтому вам просто нужно добавить класс (любой) из сборки, содержащей ваш ClassMap.

Дополнительно из беглой вики

.. затем он добавляет любые текущие сопоставления из сборки, содержащей YourEntity

...