0

我正在使用 Fluent NHibernate 构建一个示例应用程序,我读到的关于 Fluent NHibernate 的每一篇博文都说下面的代码为我创建了一个模式并更新了数据库(Drops and Creats Database)。但他们从未提及如何在 Visual Studio 中执行此操作。

var sessionFactory = FluentNHibernate
                .Cfg.Fluently.Configure()
                .Database(
                    MsSqlConfiguration.MsSql2008.ConnectionString(
                        c => c.FromConnectionStringWithKey("ServicesDb"))) 
                .CurrentSessionContext("Web")
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SqlCommandFactory>())
                .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true)) //Whne this is included
                .BuildSessionFactory();

现在,在构建 Web 应用程序时,我所能做的就是构建我的代码。有没有我可以执行的命令Package Manager Console。与 Entity Framework Code First 和 Automatic Migration 一样,我可以运行Update-Database -Force并且我的数据库将被更新。

4

1 回答 1

1

如果你想使用类似于代码优先迁移的东西,你应该使用Fluent Migrator. 这个概念是完全相同的。

如果您打算使用所显示的代码导出架构,则可以使用 IoC 框架(Ninject更具体地说,是 )来为您完成这项工作。

编辑

你还需要改变

.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))

经过

.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(true, true))

由于您当前的配置只允许创建但不允许更新

于 2013-06-29T01:33:14.413 回答