Как создать ISessionFactory с FluentNHibernate - PullRequest
1 голос
/ 11 ноября 2011

В проекте MyProject.Data у меня есть папка с именем сопоставления со всеми сопоставлениями.

namespace MyProject.Data.Mappings {
    public class EmployeeMap : ClassMap<Employee>
    {
        public EmployeeMap()
        {
            Id(x => x.Id);
            Map(x => x.FirstName).Not.Nullable().Length(100);
            Map(x => x.LastName).Not.Nullable().Length(100);
        }
    } }

В проекте MVC в файле web.config:

  <connectionStrings>
    <add name="db" connectionString="Data Source=localhost\SQLExpress;Initial Catalog=MyDB;Integrated Security=True"/>
  </connectionStrings>

В global.asax.cs я хотел бы создать ISessionFactory:

var nhConfig = Fluently.Configure().Database(MsSqlConfiguration.MsSql2008
   .ConnectionString(c => c.FromConnectionStringWithKey("db")))
   .Mappings(m => m.FluentMappings.AddFromAssemblyOf<?????>())
   .BuildConfiguration();
ISessionFactory SessionFactory = nhConfig.BuildSessionFactory();

Мне нужно: .Mappings(m => m.FluentMappings.AddFromAssemblyOf<?????>()) для каждого файла сопоставления?

Спасибо,

1 Ответ

1 голос
/ 11 ноября 2011

Нет, это служит для того, чтобы сообщить FNH, какую сборку искать для всех ваших отображений. Просто укажите любой, и вы готовы.

Таким образом, приведенный ниже код будет работать для вас, если все ваши сопоставления находятся в одной сборке.

var nhConfig = Fluently.Configure().Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("db")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<EmployeeMap>())
.BuildConfiguration();
...