在约束器上使用默认连接字符串时出现迁移错误

时间:2016-11-08 14:31:30

标签: c# entity-framework ef-migrations

在我的解决方案中,我有一些数据库合约项目,它存储上下文的接口和一些项目,用于具体的Ef上下文,如下所示:

public interface ISampleContext
{
    IDbSet<User> Users { get; set; }
    IDbSet<Session> Sessions{ get; set; }
}

public class SampleContext : DbContext, ISampleContext
{
    IDbSet<User> Users { get; set; }
    IDbSet<Session> Sessions { get; set; }

    SampleContext() : base("name=EfDefaultConnectionString"){ ... }
    SampleContext(string connectionString) : base(connectionString){ ... }

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { ... }
}

我通过以下模式运行命令进行迁移(启用,添加,更新等):

Add-Migration
    -Name MigrationName
    -ProjectName EfProjectName
    -StartUpProjectName EfProjectName
    -ConfigurationTypeName EfProjectName
    -ConnectionStringName SomeConnectionStringName

但是在运行命令后,Ef迁移失败。对于解决问题,我应该评论接口和: base("name=EfDefaultConnectionString")。最后,在创建迁移后取消注释代码。 我的问题是为什么当提供连接字符串名称时,包管理器控制台没有调用SampleContext(string connectionString)构造函数而我得到以下异常?

  

没有名为&#39; EfDefaultConnectionString&#39;的连接字符串可以在应用程序配置文件中找到。

第二个问题是我可以在包管理器控制台中控制运行命令的流程吗?

最后一个问题与此问题并不完全相关,但我现在需要有什么办法在&#34; EntityFramework.dll&#34;和&#34; EntityFramework.SqlServer.dll&#34; &#34;复制本地&#34;是假的?

0 个答案:

没有答案