首页 > 解决方案 > 如何使用两个 DbContext 将 IdentityUser 链接到 EF Core 中的实体

问题描述

我正在尝试链接IdentityUser到 EF Core 中的实体,但问题是我使用的是复杂的架构(干净的架构或至少非常接近它),所以我有多个项目,其中两个有自己的DbContext并正在尝试将我的用户链接到其保存的项目等变得很痛苦。

这是问题所在:

我已经问过有人告诉我创建一个App.Persistence.ApplicationDbContext继承自的抽象App.Identity.ApplicationIdentityDbContext,我仍然会定义我的 DbSet,就好像它是实际的ApplicationDbContext : DbContext但它确实是IApplicationDbContext : ApplicationIdentityDbContext这样,这样我就只有一个 DbContext,这将解决问题。

我想这样做,但我无法解决两件事:

我还读到,在一个大型项目中,最好保留多个 DbContext 以防止多线程错误和其他东西,所以我想知道我应该在这里做什么才能让它工作并可能保持拥有多个 DbContext 的好处。

如果您能给我详细解释您的解决方案,我将不胜感激,因为我很想知道您是如何解决这个我已经考虑了数周甚至数月的问题的。

似乎只有一个 DbContext 是解决方案,但是也App.Persistence需要一个 DbContext 所以我不知道该怎么做。

您是否认为我应该让整个App.Identity项目被项目吸收,App.Persistence因为它们具有相同的项目引用并且只有一个 DbContext 继承IdentityDbContext

标签: c#entity-frameworkasp.net-identitydbcontextclean-architecture

解决方案


推荐阅读