如何使用FluentNHibernate创建数据库?
问题描述:
我想在我的测试项目中使用FluentNHibernate。下面的代码在数据库中生成表格:如何使用FluentNHibernate创建数据库?
var sessionFactory = FluentNHibernate
.Cfg.Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("DefaultConnection")))
.CurrentSessionContext("web")
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<SqlCommandFactory>())
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
它在数据库已经存在时有效。但是,如果数据库不存在,如何创建数据库? 连接字符串到数据库看起来如下:
数据源= MAIN \ SQLEXPRESS;初始目录=杂志;集成 安全= TRUE;连接 超时= 15;加密= FALSE; TrustServerCertificate = TRUE; ApplicationIntent =读写; MultiSubnetFailover = False
另外我尝试使用另一种方法。如下所示。
new SchemaExport(cfg).Execute(true, true, false)
在这种情况下,我得到另一个例外。
System.Data.SqlClient.SqlException:无法打开登录所请求的数据库“Magazine” 。登录失败。
我更改连接字符串。
数据 源=(的LocalDB)\ 11.0; AttachDbFilename = | DataDirectory目录| \ Magazine.mdf;初始 目录=杂志;集成安全性=真
的LocalDB将是最好的选择在我的情况。但正如在SQLEXPRESS的第一个案例中,我再次收到异常。
System.Data.SqlClient.SqlException:无法附加文件 '..... \程序App_Data \ Magazine.mdf' 数据库 '杂志'。
我使用代码优先EF前和EF创建数据库,如果它丢失。我如何使用FluentNHibernate创建数据库?
答
刚刚尝试与
new SchemaExport(cfg).Create(false, true)
感谢答案更换
。 Pleace看看我的问题。 'Create(false,true)'也会引发异常。对于LocalDB,它是“无法附加文件”,并且在SQLEXPRESS的情况下它是“登录失败”。 – Seva
它看起来像你连接字符串有问题。尝试使用SSMS或其他方式连接到您的数据库 –