繁体   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