如何共享 DbContexts 而不是获取 2 个用户表

How to share DbContexts and not get 2 user tables

我正在使用 Asp.Net Core 3.1 以及 Entity Framework、Asp.Net Identity 和 IdentityServer4。我试图在多个项目中共享我的 DbContext,但我的代码优先迁移没有产生我需要的东西。这可以通过代码优先迁移实现吗?我的设置完全愚蠢吗?谢谢你的时间。


我的项目层次结构与 DbContexts。

我想要的

我得到了什么

在身份和应用程序初创公司中

services.AddIdentity<AppUser, IdentityRole>()
        .AddEntityFrameworkStores<AppUserContext>()
        .AddDefaultTokenProviders();
...
services.AddDbContext<AppUserContext>(options => options.UseSqlServer(connectionString));

迁移

dotnet-ef migrations add Init -p User\User.csproj -c AppUserContext -s IdentityServer\IdentityServer.csproj
dotnet-ef migrations add Init -p Persistence\Persistence.csproj -c RecipeContext -s Application\Application.csproj

更新 1

将 AppUser 和 AppUserContext 移动到 IdentityServer。红色是受限端点。

感谢@RuardvanElburg 的建议,我 "solved" 通过更改我的范例来实现这一点,您可以在我的 更新 1.

中看到