【发布时间】:2019-10-23 16:50:14
【问题描述】:
我一直在尝试在线学习 asp.net mvc 核心教程,我注意到当使用实体框架时,您可以在应用程序启动文件中的 ConfigureServices 中启用它,如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyContext>(cfg => cfg.UseSqlServer());
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
但如果我打算使用具有不同项目的域和数据层的 n 层架构怎么办?
所以我不会在我的 API 层中引用 EntityFramework 或 DBContext,因为它们将由域层分隔?
想到的唯一解决方案是将上下文添加到“通用”项目中,但这感觉不是正确的做法?
你们会如何解决这个问题?
【问题讨论】:
-
我在两个项目中都添加了 EF。在我看来,这不是一个糟糕的设计。
-
@EKOlog 但是您的 dbContext 驻留在哪里?
-
@Prime By Design 在我的数据库项目中。
-
@PrimeByDesign 我不确定你所说的域和数据层分离是什么意思,因为 EF 是数据层,你在上面声明的任何其他东西都是域层,所以你真的只需要一个项目.
-
@AvinKavish 我将我的图层保存在单独的项目中,以便可以引用域/数据逻辑,而无需专门与 web api 对话。它可以被其他项目使用。
标签: c# asp.net-core .net-core entity-framework-core n-tier-architecture