Web Api 2.2 - 类库项目中的代码优先迁移

时间:2017-02-28 07:37:24

标签: c# entity-framework asp.net-web-api2 ef-migrations class-library

我在myVS 2015解决方案中有两个项目。

  1. 项目A

    • Web Api 2.2项目
    • 主项目,其中定义了DBContext类和连接字符串(在web.config文件中)
  2. 项目B

    • 班级图书馆计划
    • 项目A已添加为参考
    • 模特&控制器定义
    • 模型继承了一个Project A
    • 创建了一个DBContext类,它继承了项目A的DBContext。
    • public DbSet Planets {get;组; }
  3. 上述项目结构背后的想法是:

    1. 在项目变大时降低复杂性

    2. 使其不那么复杂&增加可读性

    3. 进行身份验证&项目A中的授权逻辑

    4. 我必须在项目B中实现以下内容:

      1. 需要共享/访问项目A的连接字符串
      2. 需要先运行代码迁移。
      3. 在将应用程序部署到prod?
      4. 时,需要知道如何运行代码首次迁移

        问题:

        我已启用代码首次迁移并更新了数据库。 我运行没有任何问题,但它没有针对在项目A的web.config中配置的数据库运行。相反,它添加了自己的本地数据库。

        我是否应该在Project B中指定连接字符串。如果是,作为一个类库,如何添加配置文件?

1 个答案:

答案 0 :(得分:1)

你需要在App.Config中指定你的连接字符串,然后在DbContext的构造函数中给出连接字符串的名称。就像这样。

 public ApplicationContext() : Base('ConnectionString')

此外,您需要在App.Config中将defaultConnectionFactory从LocalDbConnectionFactory更改为SQLConnectionDbFactory。