. NET Базовая идентификация (сначала код): как ссылаться / наследовать TKey, объявленный в IdentityDbContext, в новом связанном обобщенном классе c? - PullRequest
0 голосов
/ 28 января 2020

Я буду sh, чтобы расширить мою текущую модель идентичности, добавив новую сущность, которая будет связана (один к одному) с классом IdentityRole. Проблема в том, что я sh хочу добиться этого путем абстрагирования TKey, как объявлено в IdentityDbContext, от IdentityRole<TKey> в новой сущности.

Вот пример:

Класс Context (с поддержкой TKey в виде строки):

public partial class DataContext : IdentityDbContext<User, Role, string>
{
    public DataContext(DbContextOptions options) : base(options) { }

    public override DbSet<Role> Roles { get; set; }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }
}

Класс Role (наследуется от IdentityRole):

public class Role : IdentityRole
{
    // Navigation properties:
    public virtual NewEntity NewEntity { get; set; }
}

IdentityRole реализован с string по умолчанию, но он также унаследован от объявления IdentityDbContext выше.

Класс NewEntity (просто идея):

public class NewEntity<TKey> where TKey : IEquatable<TKey>
{
    public Guid Id { get; set; }
    // Wish for this property to link to
    // the Role class, which inherits from IdentityRole:
    public TKey RoleId { get; set; }

    // ...

    // Navigation properties:
    public virtual Role Role { get; set; }
}

Если бы я изменил свое объявление DataContext, указав TKey как любой другой тип вместо string (например, например: public partial class DataContext : IdentityDbContext<User, Role, Guid>), как мне настроить вещи, чтобы это изменение перешло в мой класс NewEntity без указания типа в каждом классе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...