3

我开始用了Abp Framework (the new version - abp.io),我最后用了version 0.18.1

我知道我有两个 DbContext,一个用于应用程序和运行时模型,另一个用于创建迁移,这允许我在同一个数据库中运行多个运行时 dbcontext,但有些东西我无法理解。

在运行时 DbContextAppUser中建模为:

builder.Entity<AppUser>(b =>
{
    b.ToTable("AbpUsers"); //Sharing the same table "AbpUsers" with the IdentityUser

    b.ConfigureFullAudited();
    b.ConfigureExtraProperties();
    b.ConfigureConcurrencyStamp();
    b.ConfigureAbpUser();

    //Moved customization to a method so we can share it with the SampleAppMigrationsDbContext class
    b.ConfigureCustomUserProperties();
});

但是,该实体未在 MigrationDbContext 中建模,在 MigrationDbContext 中我可以找到“IdentityUser”实体建模为:

builder.Entity<IdentityUser>(b =>
{
    b.ConfigureCustomUserProperties();
});

为什么AppUser不在 MigrationDbContext 中使用?有人可以解释一下吗?

当我尝试AppUser从其他实体获取导航属性时,这种情况使我在迁移中遇到错误,例如:

public class Book : AuditedAggregateRoot<Guid>
{
    public string Name { get; set; }

    public AppUser CreatorUser {get;set;}

}

当我尝试添加新的迁移时,EfCore 给我一个错误,告诉我无法建模 AppUser ...

在这个问题中:([Can't use AbpUser as navigation property] The property 'AppUser.ExtraProperties' could not be mapped)。我可以找到一个工作区,使用建模方式迁移和其他正常 DbContext ...我想为这个问题提供更好的解决方案。

有人可以告诉我这个吗?

4

0 回答 0