使用N-Tier Repository模式Visual Studio项目启用迁移

时间:2015-12-18 07:25:56

标签: c# asp.net .net entity-framework-6 ef-migrations

使用N层应用程序。 有存储库层,服务层和表示层项目。 只有Repository Layer引用了实体框架。 只有表示层(web.config)具有配置字符串。 我使用IDbContextFactory和依赖注入来注入配置

如何启用迁移它会出错

  

检查上下文是否以现有数据库为目标... System.ArgumentException:参数' nameOrConnectionString'不能为null,为空或仅包含空格。 System.Data.Entity.DckContext..se(String nameOrConnectionString)上的System.Data.Entity.Utilities.Check.NotEmpty(String value,String parameterName)

正如我所提到的,连接字符串(配置)是从表示层注入的,我使用的是Autofac for DI

以下是存储库层中使用的Context Factory

 public class MyContextFactory : IDbContextFactory<MyContext>
    {
        public ILogger Logger { get; set; }
        private readonly string _configuration;
        public MyContextFactory(string configuration)
        {
            _configuration = configuration;
        }
        public MyContextFactory()
        {

        }
        public MyContext Create()
        {
            var dbcontext =new MyContext(_configuration, Logger);

            return dbcontext;
        }
    }

1 个答案:

答案 0 :(得分:0)

使其正常工作答案是将连接字符串添加到存储库项目的app.config中。 (只需从web.config

复制

当您将迁移指向该项目时,我认为它不够聪明,无法知道在哪里查找连接字符串。