更改了连接字符串,但仍使用localdb的mvc应用程序

时间:2014-03-11 02:19:46

标签: sql-server asp.net-mvc

我在web.config中更改了连接字符串以使用sqlexpress而不仅仅是localdb。我的应用程序仍然在localdb而不是sqlexpress中创建数据库。我很难过。

这是我的连接字符串

Data Source=.\SQLEXPRESS;Initial Catalog=Jemco;Integrated Security=True;

可能是我的app.config吗?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

3 个答案:

答案 0 :(得分:3)

您应该使用<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">代替LocalDbConnectionFactory,并在其<parameters>代码中添加连接字符串。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
      <parameters>
        <parameter value="Data Source=.\SQLEXPRESS; Integrated Security=True; Initial Catalog=Jemco;" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

答案 1 :(得分:0)

&lt; defaultConnectionFactory&gt;元素设置仅在您未向Entity Framework提供“提示”时适用。

您可以覆盖DbContext基类构造函数,以向Entity Framework提供“提示”。假设您在.config文件中定义了连接字符串,您需要做的就是让您的YOUR_DbContext类调用提供连接字符串名称的基本DbContext(字符串)构造函数,将以下公共构造函数添加到DbContext类

 public class YOUR_DbContext : DbContext{

    public YOUR_DbContext()
        : base("**YOUR_ConnectionStringNameHere**"){
        //Optional - Write the actual connect string out to the Output window 
        Debug.WriteLine(Database.Connection.ConnectionString);
    }

答案 2 :(得分:0)

另一个原因可能是当您在解决方案上有多个项目并且选择了一个项目作为启动项目而不是DBContext是该项目并且您没有在启动项目中设置连接字符串时。启动项目中的连接字符串。

希望能帮助别人;)