未使用 Unity 解析通用存储库
Generic Repository not being resolved using Unity
我正在使用存储库模式我的数据上下文 class 如下,
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。请检查您的配置文件并验证此类型名称。
注册为通用:
<register type="IRepository[]" mapTo="SqlRepository[]">
<lifetime type="singleton"/>
</register>
我正在使用存储库模式我的数据上下文 class 如下,
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。请检查您的配置文件并验证此类型名称。
注册为通用:
<register type="IRepository[]" mapTo="SqlRepository[]">
<lifetime type="singleton"/>
</register>