【问题标题】:SQL Server Express connection string for Entity Framework Code FirstEntity Framework Code First 的 SQL Server Express 连接字符串
【发布时间】:2011-05-06 05:51:17
【问题描述】:

我在 Visual Web Developer 2010 Express 中工作,并使用实体框架代码优先 CTP。我可以使用新的 SQL Server CE 执行此操作,但我无法找到与 SQL Server Express 一起使用的连接字符串。

这个使用 SQL Server CE 测试版,运行良好(数据库在模型更改时创建和重新创建)。

<add name="TrempimModel"
     connectionString="data source=|DataDirectory|TrempimModel.sdf"
     providerName="System.Data.SqlServerCe.4.0" />

这是我从aspnetdb 连接字符串中复制的,

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

在启动时给出以下消息:

无法完成操作。提供的 SqlConnection 未指定初始目录

那么如何让它与 SQL Server Express 一起工作呢?

【问题讨论】:

    标签: entity-framework connection-string sql-server-express code-first


    【解决方案1】:

    你的连接字符串的问题是:

    <add name="TrempimModel"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                           AttachDBFilename=|DataDirectory|aspnetdb.sdf;
                           User Instance=true"
         providerName="System.Data.SqlClient" />
    

    您基本上是在定义要连接到的“服务器” - 但您说明要连接到文件中的哪个数据库。 另外 - SQL Server Express 数据库文件的文件扩展名是 .mdf(不是 .sdf - 那是 SQL Server Compact Edition) - 你也需要考虑到这一点!是一个错字,根据 OP 的评论)。

    您需要在连接字符串中定义一个额外的database=....(或Initial Catalog=.....):

    <add name="TrempimModel"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                           database=YourDatabaseName;
                           AttachDBFilename=|DataDirectory|aspnetdb.mdf;
                           User Instance=true"
         providerName="System.Data.SqlClient" />
    

    那么它应该可以正常工作。

    有关更多背景和大量样本,请查看ConnectionStrings 网站。

    【讨论】:

    • a) sdf 扩展名是错字。我在连接字符串中使用 mdf - 编辑了问题以反映这一点。指定数据库的建议解决了我的问题 - 谢谢。我使用与文件名相同的名称 - 这是正确的还是会导致一些问题?
    • @GilShalit:这取决于您的 MDF 中的数据库真正被称为什么;它与文件名同名的可能性很高。您必须通过将 MDF 附加到成熟的 SQL Server 实例来验证这一点,并查看存储在 MDF 中的数据库真正调用的是什么。
    • 您似乎对此了解很多,我想如果您有时间可以看看我的问题...我可以让连接字符串正常工作,但是如果我尝试编辑/使用数据库,我收到很多错误:( - stackoverflow.com/questions/5924553/… 并重新发布到 MSDN - social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/…
    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多