c# - 无法注入 IRepository由于“没有隐式引用转换”
问题描述
开始尝试熟悉 .NET Core 的 ASP.NET 样板模板。
一切都很顺利,直到我需要将IRepository
一个泛型Entity
注入到类构造函数中。
在DepartmentManager
课堂上,当我尝试创建一个私有只读字段以注入构造函数时,我收到 IntelliSense 错误:
没有从 Department 到 Abp.Domain.Entities.IEntity 的隐式引用转换 Type Department 不能用作泛型类型或方法“IRepository,主键”中的类型参数 TEntity
我试图研究是否可以通过一些解决方案在网上找到类似的问题,但无济于事。
下面是一个简单的代码来说明挑战。
// 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
}
任何帮助都非常感谢我做的不对。
解决方案
制作Department
实现Entity<long>
或IEntity<long>
使用其存储库。
public class Department : Entity<long>
{
public string DepartmentName { get; set; }
}
参考
推荐阅读
- apache-spark - 如果会话停止,Spark 上下文会发生什么情况?
- react-native - 通过单击按钮反应本机控件选项卡导航
- c# - 使用数据库优先方法的 WPF 中的 DataAnnotation - 如何将数据注释移动到伙伴类,包括。IsValid 函数
- r - 如何在r中从长到宽传播不平衡数据
- mongodb - 从嵌入式 Mongo 文档中以字符串形式获取数据
- java - 运行Junit测试时如何修复assertTrue错误
- angular - 如何自定义 Compodoc Angular 文档?
- jquery - 如何避免 .each 方法中的重复值
- php - 如何在 HMVC Codeigniter 中获取模块名称
- json - 如何将特定 DBpedia (SPARQL) 导出为 JSON 以用于 openlayers 地图?