Gil*_*lit 38 entity-framework connection-string code-first sql-server-express
我在Visual Web Developer 2010 Express中工作,并使用Entity Framework代码优先CTP.我能够使用新的SQL Server CE执行此操作,但我无法找到与SQL Server Express一起使用的连接字符串.
这个使用SQL Server CE beta,工作正常(数据库是在模型更改时创建和重新创建的).
<add name="TrempimModel"
connectionString="data source=|DataDirectory|TrempimModel.sdf"
providerName="System.Data.SqlServerCe.4.0" />
Run Code Online (Sandbox Code Playgroud)
这个,我从aspnetdb连接字符串复制,
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
在启动时给出以下消息:
无法完成操作.提供的SqlConnection未指定初始目录
那么如何使它与SQL Server Express一起使用?
mar*_*c_s 61
这里你的连接字符串的问题是:
<add name="TrempimModel"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.sdf;
User Instance=true"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
您基本上定义了您要连接的"服务器" - 但您没有说要连接到文件中的数据库.此外 - SQL Server Express数据库文件的文件扩展名(根据OP的评论,这是一个错字)..mdf(不是.sdf- 那是SQL Server Compact Edition) - 您也需要考虑到这一点!
您需要在连接字符串中定义一个额外的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" />
Run Code Online (Sandbox Code Playgroud)
然后它应该工作得很好.
有关更多背景和大量样本,请查看ConnectionStrings网站.