【问题标题】:Generic Repository not being resolved using Unity未使用 Unity 解析通用存储库
【发布时间】:2015-08-19 15:26:56
【问题描述】:

我正在使用存储库模式,我的数据上下文类如下,

public class DataContext : DbContext
{
    public DataContext()
    {

    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<Customer>().ToTable("Customer");
        modelBuilder.Entity<Orders>().ToTable("Orders");
    }
    public IDbSet<T> DBSet<T>() where T : class
    {
        return this.Set<T>();
    }
}

我正在使用如下通用存储库,

public interface IRepository<T> : IDisposable
{
    IQueryable<T> FindAll();
    T FindById(int id);
    int Add(T TEntity);
    int Update(T TEntity);
    int Delete(T TEntity);
    int Commit();
}

实现是,

public class SqlRepository<T> : IRepository<T> where T : class
{
    private DataContext _context;
    private readonly IDbSet<T> _dbSet;
    bool disposing;
    public SqlRepository()
    {
        _context = new DataContext();
        _dbSet = _context.DBSet<T>();
    }
    public IQueryable<T> FindAll()
    {
        return _dbSet;
    }

    public T FindById(int id)
    {
        return _dbSet.Find(id);
    }

我正在使用基于配置的容器,

<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
  <assembly name="CustomerManagementAPI.Data"/>
  <namespace name="CustomerManagementAPI.Data"/>
  <container>
    <register type="IRepository" mapTo="SqlRepository">
      <lifetime type="singleton"/>
    </register>
    <register type="ICustomerService" mapTo="CustomerService">
      <lifetime type="singleton"/>
    </register>
  </container>
</unity>

在尝试使用参数实例化控制器时出现以下错误 无法解析类型名称或别名 IRepository。请检查您的配置文件并验证此类型名称。

【问题讨论】:

    标签: c# generics dependency-injection unity-container


    【解决方案1】:

    将其注册为泛型:

    <register type="IRepository[]" mapTo="SqlRepository[]">
      <lifetime type="singleton"/>
    </register>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多