我想在我的測試項目中使用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創建數據庫?
感謝答案更換
。 Pleace看看我的問題。 'Create(false,true)'也會引發異常。對於LocalDB,它是「無法附加文件」,並且在SQLEXPRESS的情況下它是「登錄失敗」。 – Seva
它看起來像你連接字符串有問題。嘗試使用SSMS或其他方式連接到您的數據庫 –