37

我在Visual Web Developer 2010 Express中工作,并使用实体框架代码优先CTP。我能够用新的SQL Server CE做到这一点,但我无法找到连接字符串来与SQL Server Express一起工作。Entity Framework的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一起工作呢?

回答

59

与您的连接字符串这里的问题是:

<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精简版) - 您也需要考虑这一点! 是打字错误,根据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网站。

+0

a)sdf扩展名是一个错字。我在连接字符串中使用了mdf - 编辑了问题以反映这一点。指定数据库的建议解决了我的问题 - 谢谢。我正在使用与文件名相同的名称 - 是正确的还是会导致一些问题? – GilShalit 2010-11-07 10:14:50

+0

@GilShalit:它取决于你的MDF里的数据库真的叫什么;很可能与文件名称相同。您必须通过将MDF附加到完整的SQL Server实例并查看真正调用MDF内存储的数据库来验证这一点。 – 2010-11-07 10:27:01

+0

因为你似乎对此知道很多,我不假设你有时间可以看看我的问题......我可以让连接字符串工作,但如果我尝试编辑/使用数据库,我得到这么多的错误:( - http://stackoverflow.com/questions/5924553/entity-framework-error-connecting-to-sql-server-express-after-mounting-connecting并重新发布到MSDN - http: //social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/1ec3ff63-d8a1-4844-942d-c2c05ed8078e – Wil 2011-05-10 12:42:23

相关问题