【发布时间】:2017-10-28 01:55:36
【问题描述】:
我尝试在我的测试项目中使用 FluentNHibernate。以下代码在existin数据库中生成表:
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;初始目录=杂志;集成 安全=真;连接 Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
我也在尝试使用另一种方法。如下所示。
new SchemaExport(cfg).Execute(true, true, false)
在这种情况下,我得到另一个例外。
System.Data.SqlClient.SqlException:无法打开数据库“杂志” 登录请求。登录失败。
我更改了连接字符串。
数据 Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Magazine.mdf;Initial 目录=杂志;集成安全=True
就我而言,LocalDb 将是最佳选择。但与 SQLEXPRESS 的第一种情况一样,我再次收到异常。
System.Data.SqlClient.SqlException:无法附加文件 '.....\App_Data\Magazine.mdf' 作为数据库“杂志”。
我之前在 EF 中使用过 Code First,如果缺少,则使用 EF 创建数据库。如何使用 FluentNHibernate 创建数据库?
【问题讨论】:
标签: c# nhibernate fluent-nhibernate code-first