我有一个基于ASP.NET Boilerplate http://aspnetboilerplate.com的项目,由于我无法控制的原因,我不得不将项目从0.4.x升级到0.5.x.变更日志(http://aspnetboilerplate.com/Pages/Documents/Change-Logs)中明确说明了以下重大变化:
更改了EntityFramework的基础存储库构造函数
https://github.com/aspnetboilerplate/aspnetboilerplate/issues/249
然而,对于我的生活,我无法弄清楚我如何改变现有的基类来支持这一点。我的代码如下:
public class MlRepositoryCommon<TEntity, TPrimaryKey> : EfRepositoryBase<MlDbContext, TEntity, TPrimaryKey> where TEntity : class, IEntity<TPrimaryKey>
{
//Add common methods for repositories
}
public class MlRepositoryBase<TEntity> : MlRepositoryCommon<TEntity, long> where TEntity : class, IEntity<long>
{
}
public class MlDbContext : AbpDbContext
{
public MlDbContext()
: base("DefaultConnection")
{
}
}
,编译错误是:
'Abp.EntityFramework.Repositories.EfRepositoryBase<MakersLane.Infrastructure.EntityFramework.EntityFramework.MlDbContext,TEntity,TPrimaryKey>' does not contain a constructor that takes 0 arguments
我很感激任何帮助,因为我现在有一个迫在眉睫的截止日期,没有编制解决方案: - (
答案 0 :(得分:0)
您的存储库应采用IDbContextProvider&lt; YourDbContext&gt;作为构造函数参数。这就是全部。
示例存储库:
从中派生出来的存储库: