#interface #asp.net-identity #multiple-inheritance #implicit-conversion
Вопрос:
В моем проекте .NET Core 5 я использую класс ApplicationUser, который наследуется от Identity Core IdentityUser
public class ApplicationUser : IdentityUser<Guid>
Мой ApplicationUserRepository наследуется от базового репозитория, который реализует интерфейс, определяющий идентификатор сущности.
public class UserRepository : BaseRepository<ApplicationUser>
public class BaseRepository<T> where T : class, IIdentifiable<Guid>
public interface IIdentifiable<T>
{
public T Id { get; set; }
}
Несмотря на то, что IdentityUser реализует идентификатор Guid как виртуальное свойство (которое должно удовлетворять контракту), я получаю ошибку CS0311: тип «ApplicationUser» не может использоваться в качестве параметра типа » T «в универсальном типе или методе «BaseRepository». Неявного преобразования ссылки из «ApplicationUser» в IIdentifiable<System.Guid>не существует.
Что я упускаю?