簡體   English   中英

SQL Server Express連接字符串/ FluentNHibernate

[英]SQL Server Express connection string / FluentNHibernate

我的連接字符串有些問題。 我一直在測試很多不同的字符串和方法,現在我被卡住了。

private static void InitializeSessionFactory()
{
    _sessionFactory = Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008
                          .ConnectionString(
 @"Server=Data Source=.\SQLEXPRESS;DataBase=carDB.mdf;User ID=sa;Password=xxxSecretxxx;")
                          .ShowSql()
            )
            .Mappings(m =>
                      m.FluentMappings
                          .AddFromAssemblyOf<Car>())
            .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, false))
            .BuildSessionFactory(); 
    }

(我知道我根本不應該使用'sa' - 為什么我這樣做只是因為缺乏管理軟件所以我不得不使用唯一的帳戶)

我正在使用SQL Server Express數據庫。

我得到的例外是:

創建SessionFactory時使用了無效或不完整的配置。
檢查PotentialReasons集合,以及InnerException以獲取更多詳細信息。

這是我的內心例外

建立與SQL Server的連接時發生與網絡相關或特定於實例的錯誤。
服務器未找到或無法訪問。
驗證實例名稱是否正確,以及SQL Server是否配置為允許遠程連接。
(提供程序:SQL網絡接口,錯誤:26 - 查找指定的服務器/實例時出錯)

有誰知道我應該怎么做? 我花了好幾個小時試圖讓它發揮作用。

在連接字符串中,不指定數據庫文件,而是指定數據庫名稱 所以它不應該

@"Server=Data Source=.\SQLEXPRESS;DataBase=carDB.mdf;User ID=sa;Password=xxxSecretxxx;"

@"Server=Data Source=.\SQLEXPRESS;DataBase=carDB;User ID=sa;Password=xxxSecretxxx;"

前提是數據庫確實有carDB的名稱,而不是像Cars這樣的其他名稱。

另外,我建議使用SqlConnectionStringBuilder類來構建連接字符串,因為它保證了語法上正確的連接字符串。

旁注:您確實知道可以為Express版安裝管理工具(如SQL Server Management Studio for SQL Server Express)嗎? 這使事情變得更容易。

目前尚不清楚您正在使用的SQL Server版本。 它是ether Express或Compact。

如果它是SQL Express,那么試試這個:

@"Data Source=.\SQLEXPRESS;Initial Catalog=carDB;User ID=sa;Password=********;"

對於SQL Compact,通常足以指定db文件的路徑和名稱:

@"Data Source=path\\carDB.sdf;"

但對於SQL Compact,您可能需要另一個提供程序MsSqlCeConfiguration.Standard

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM