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

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

  1. 项目A.

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

    • class级图书馆计划
    • 项目A作为参考添加
    • 模型和控制器定义
    • 模型inheritance了一个Project A类
    • 创建了一个DBContext类,它从项目AinheritanceDBContext。
    • public DbSet Planets {get; 组; }

我对上述项目结构背后的想法是:

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

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

  3. 在项目A中制作身份validation和授权逻辑

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

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

问题:

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

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

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

public ApplicationContext() : Base('ConnectionString') 

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