Хорошо, у меня есть база данных, но нет таблиц в ней. У меня есть несколько классов сущностей. Я пытаюсь настроить 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). Когда я решил это, он работает нормально Я до сих пор не понимаю , почему это работает, хотя.