我开始用了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 ...我想为这个问题提供更好的解决方案。
有人可以告诉我这个吗?