entity framework代码的SQL Server Express连接string首先

我正在使用Visual Web Developer 2010 Express,并使用entity framework代码优先CTP。 我能够用新的SQL Server CE做到这一点,但我无法find一个连接string与SQL Server Express的工作。

这一个,使用SQL Server CEtesting版,工作正常(数据库创build和模型更改重新创build)。

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

这一个,我从aspnetdb连接string复制,

 <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一起工作呢?

这里的连接string的问题是:

 <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的评论,是一个错字 )。

您需要在连接string中定义一个额外的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网站。