数据库
首页 > 数据库> > SQL Server Express连接字符串/ FluentNHibernate

SQL Server Express连接字符串/ 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数据库.

我得到的例外是:

An invalid or incomplete configuration was used while creating a SessionFactory.
Check PotentialReasons collection, and InnerException for more detail.

这是我内在的例外

A network-related or instance-specific error
occurred while establishing a connection to SQL Server.
The server was not found or was not accessible.
Verify that the instance name is correct and that
SQL Server is configured to allow remote connections.
(provider: SQL Network Interfaces,
error: 26 – Error Locating Server/Instance Specified)

有谁知道我该如何处理?我已经花了几个小时试图使它起作用.

解决方法:

在连接字符串中,您无需指定数据库文件,而是指定数据库名称.所以不应该

@"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 Express的SQL Server Management Studio)吗?这使事情变得容易得多.

标签:connection-string,sql,c,sql-server,fluent-nhibernate
来源: https://codeday.me/bug/20191031/1975412.html