Sql server 构建web应用程序时如何触发架构导出/更新?

Sql server 构建web应用程序时如何触发架构导出/更新?,sql-server,nhibernate,asp.net-mvc-4,visual-studio-2012,fluent-nhibernate,Sql Server,Nhibernate,Asp.net Mvc 4,Visual Studio 2012,Fluent Nhibernate,我正在使用Fluent NHibernate构建一个示例应用程序,我读到的关于Fluent NHibernate的每一篇博文都说下面的代码为我创建了一个模式并更新了数据库(删除并创建数据库)。但他们从未提及如何在VisualStudio中执行此操作 var sessionFactory = FluentNHibernate .Cfg.Fluently.Configure() .Database(

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

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();
var sessionFactory=FluentNHibernate
.Cfg.fluntly.Configure()
.数据库(
MsSqlConfiguration.MsSql2008.ConnectionString(
c=>c.FromConnectionStringWithKey(“ServicesDb”))
.CurrentSessionContext(“Web”)
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(cfg=>newschemaexport(cfg).Create(true,true))//其中包括哪些内容
.BuildSessionFactory();

现在,在构建web应用程序时,我所能做的就是构建代码。是否有可以在包管理器控制台中执行的命令。与实体框架代码优先和自动迁移一样,我只需运行更新数据库-Force,我的数据库就会更新。

如果您想使用类似于代码优先迁移的方法,应该使用。这个概念完全相同

如果您计划用显示的代码导出模式,那么可以使用IoC框架(更具体地说)为您完成这项工作

编辑

你也需要改变

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


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

我使用的是
Ninject
,我发布的代码在该配置文件中,还有其他
绑定的列表
@Komenge-Mwandila:那么您什么都不用做。一旦代码执行,架构将在必要时更新当你什么也不说时,这是否意味着只要我构建代码,数据库就应该更新,还是在我运行调试时更新?@Komenge Mwandila:数据库将在代码运行时更新(以任何方式,调试与否),不是在构建时。我得到了这个
数据库中已经有一个名为“AllUsers”的对象。
。不知何故,代码在执行之前并没有检查表是否存在。只是为了澄清,
alluser
是我手动添加的一个表视图。
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(true, true))