将实体框架迁移与MS SQL Server一起使用

时间:2016-09-08 12:16:15

标签: entity-framework-6

我正在尝试使用Entity Framework Migrations来使用SQL Server的本地(默认)实例。

我对实体框架的配置是这样的:

<configuration>
  <connectionStrings>
    <add name="Demo.Data.MyContext"
       providerName="System.Data.SqlClient"
       connectionString="Data Source=(local);Initial Catalog=Connector;    
       Integrated Security=True;MultipleActiveResultSets=True" />
  </connectionStrings>
  <configSections>
  <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"/>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

上下文类是:

namespace Demo.Data
{
  public class MyContext : DbContext
  { 
  }
}

就我阅读文档而言,一个与上下文同名的连接字符串的名称使其可被EF发现。

但是当我执行命令时:

PM> Update-Database -verbose

结果如下:

Using StartUp project 'Demo'.
Using NuGet project 'Demo.Data'.
Target database is: 'Demo.Data.MyContext' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).

问题是 - 为什么坚持定位。\ SQLEXPRESS?

如何配置app.config以使EF指向我的本地SQL Server?

1 个答案:

答案 0 :(得分:0)

嗯,显然有一个技巧可以让它使用PM控制台工作:

包含Entity Framework迁移包的项目需要选择为&#34;启动项目&#34;在Visual Studio中。仅选择项目为&#34;默认项目&#34;在PM控制台中。

您也可以使用

进行设置
PM> Update-Database -StartUpProjectName "Demo.Data"

在控制台中切换。