如何在不添加对 Web 项目的任何引用的情况下实现代码优先方法?
How to implement code first approch without adding any references to web project?
我已将我的 dbContext 添加到单独的 class 库中,并将该项目的引用添加到 WebAPI 项目。
现在我想创建一个迁移。但是要创建它,我还需要将一些 entity framework 引用添加到 webapi 项目中。
这将违反我的架构的 SOP 原则。
那么我如何在我的网络 api 不依赖于数据库层的情况下实现代码优先方法?
您的webapi项目没有必要直接依赖EntityFramework。
您可以将数据库 class 库项目指定为将保存迁移的项目。例如:
dotnet ef migrations add MigrationName --project DatabaseClassLibrary --startup-project WebApiProject
以上命令将使用 WebApiProject 作为启动项目,因为它很可能(但不总是)具有用于为数据库提供程序创建 DbContext
实例的 DI 设置。
我已将我的 dbContext 添加到单独的 class 库中,并将该项目的引用添加到 WebAPI 项目。 现在我想创建一个迁移。但是要创建它,我还需要将一些 entity framework 引用添加到 webapi 项目中。 这将违反我的架构的 SOP 原则。
那么我如何在我的网络 api 不依赖于数据库层的情况下实现代码优先方法?
您的webapi项目没有必要直接依赖EntityFramework。
您可以将数据库 class 库项目指定为将保存迁移的项目。例如:
dotnet ef migrations add MigrationName --project DatabaseClassLibrary --startup-project WebApiProject
以上命令将使用 WebApiProject 作为启动项目,因为它很可能(但不总是)具有用于为数据库提供程序创建 DbContext
实例的 DI 设置。