我有一个解决方案项目,其中我在类库Project中实现了Entity框架。 我在同一个类库中有一个App.config文件,我将连接字符串作为
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=DDC5-D-4R03T72;Initial Catalog=ServiceAdaptor;User ID=sa;Password=pwd;MultipleActiveResultSets=True;Integrated Security=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
(我正在使用Visual Studio 2010,我正在使用Code-First Approach EF)
现在问题是当我运行命令“Update-Database -Verbose”时,
它不是在上面的DB中创建表,而是在.\SQLExpress
中创建的,我在我的soln中的任何地方都没有提到过)
当我发出命令时
Update-Database -Verbose -ConnectionStringName "DefaultConnection"
它给了我留言
“在。中找不到名为'DefaultConnection'的连接字符串 应用程序配置文件。“
我得出的结论是我的Update-Database命令无法从配置文件中获取连接字符串。
无法弄清楚,出了什么问题。
答案 0 :(得分:1)
最后我找到了解决方案,这里有问题,不知何故,Update-database命令正在搜索Web.Config文件中的连接字符串,而不是在App.Config文件中,就像我的情况一样,我有具有App.config文件的类库项目。
因为它没有获得连接字符串默认情况下,VS 10中的EF框架将。\ SQLEXPRESS视为默认数据库并在那里创建表。
所以我找到的解决方案是:
1)在项目中添加参考System.Configuration
2)在dbContext中使用base(&#34; DefaultConnection&#34;),请使用如下
碱(System.Configuration.ConfigurationManager.ConnectionStrings [&#34; DefaultConnection&#34]。ConnectionString中)