Невозможно ввести IRepository <TEntity>из-за "неявного преобразования ссылок" - PullRequest
0 голосов
/ 25 мая 2019

Начал и пытался ознакомиться с шаблоном ASP.NET Boilerplate для .NET Core.

Все шло гладко, пока мне не понадобилось внедрить IRepository с универсальным Entity в классконструктор.

В классе DepartmentManager, когда я пытался создать частное поле только для чтения для вставки в конструктор, я получаю ошибку IntelliSense, которая:

Неявного не существуетпреобразование ссылки из Отдела в Abp.Domain.Entities.IEntity Тип Отдел не может использоваться в качестве параметра типа TEntity в универсальном типе или методе 'IRepository, первичный ключ'

Я пытался исследовать, чтобы увидетьесли бы я мог найти похожие проблемы в Интернете с некоторыми решениями, но безрезультатно.

Ниже приведен простой код, иллюстрирующий проблему.

// Class 
public class Department
{
    public long Id { get; set; }

    public string DepartmentName { get; set; }
}

// IDepartment Manager
public interface IDepartmentManager
{
    Task<Department> CreateDepartment(Department entity);
    Task Update(Department entity);
    Task Delete(long id);
    Task<IEnumerable<Department>> GetAll();
}

// Department Manager    
private readonly IRepository<Department, long> _departmentRepo;
public DepartmentManager(IRepository<Department, long> departmentRepo)
{
    _departmentRepo = departmentRepo
}

Любая помощь очень важна для меня.неправильно поступаю.

1 Ответ

1 голос
/ 26 мая 2019

Заставьте Department внедрить Entity<long> или IEntity<long> для использования своего хранилища.

public class Department : Entity<long>
{
    public string DepartmentName { get; set; }
}

Ссылки

...