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

Web Api 2.2 - Code First Migration in Class Library Project

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

  1. 项目 A

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

    • Class 图书馆项目
    • 项目A添加为参考
    • 模型和控制器定义
    • Models 继承了项目 Aclass
    • 创建了一个从项目 A 继承 DBContext 的 DBContext class。
    • public DbSet Planets { get;放; }

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

  1. 为了在项目变大时降低复杂度

  2. 让它不那么复杂并增加可读性

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

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

  1. 需要 share/access 来自项目 A 的连接字符串
  2. 需要运行 编码第一次迁移。
  3. 需要知道如何 运行 在将应用程序部署到产品时首先迁移代码?

问题:

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

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

你需要在App.Config中指定你的连接字符串,然后在DbContext的Constructor中给出连接字符串的名称。

 public ApplicationContext() : Base('ConnectionString')

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