Я новичок в nHibernate и Fluent nHibernate, и у меня возникают большие проблемы с некоторой простой настройкой на что-то.Сгенерируйте несколько схем с использованием Fluent nHibernate
private static ISessionFactory CreateSessionFactory()
{
return FluentNHibernate.Cfg.Fluently.Configure()
.Database(
FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008
.ConnectionString(@"MultipleActiveResultSets=True;Data Source=.\SQLEXPRESS;Initial Catalog=nHibernate;Integrated Security=True;Pooling=False"))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
private static void BuildSchema(NHibernate.Cfg.Configuration config)
{
// this NHibernate tool takes a configuration (with mapping info in)
// and exports a database schema from it
new SchemaExport(config)
.Drop(false, true);
new SchemaExport(config)
.Create(false, true);
}
Этот метод (взятый частично из собственных образцов) создает базу данных. Это все прекрасно и хорошо ...
Но у меня есть несколько схем в моей базе данных, например ..
dbo
.
Sheets.Traits
Листы - это схема. Так на SheetsMap
классе, у меня есть ...
public class SheetMap : ClassMap<Sheet>
{
public SheetMap()
{
Id(x => x.Id);
HasManyToMany(x => x.Traits)
.ParentKeyColumn("Sheet")
.ChildKeyColumn("Trait")
.Cascade.All()
.Schema("Sheets")
.Table("Traits");
Table("Sheets");
}
}
Но это выдает ошибку во время выполнения. Любая идея о том, что я должен делать? Я действительно не понимаю 99% того, как все это должно работать.
Ошибка я получаю это ...
An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
{"The specified schema name \"Sheets\" either does not exist or you do not have permission to use it."}
В принципе, мне нужно знать, как иметь строитель создать эту схему, когда он делает сценарий. Я уверен, в этом проблема.
Я пробовал это. Он бросает их. – Ciel