我使用DI将类库DBContext和存储库添加到Web应用程序中。
services.AddDbContext<CitiesFrameworkCore.Entities.CityInfoContext>(o =>
o.UseSqlServer(@"Server=(localdb)\MSSQLLocalDB;Database=CitiesFrameworkCoreDB;Trusted_Connection=True;"));
services.AddScoped<ICityInfoRepository, CitiesFrameworkCore.Repositorys.CityInfoRepository>();
我的问题是我不知道如何在我的类库存储库中引用我的上下文(我不能使用依赖项注入,因为它是在不同的程序集中注入的。)
public class CityInfoRepository : ICityInfoRepository
{
private CityInfoContext _context;
public CityInfoRepository(CityInfoContext context)
{
_context = context;
}
public bool CityExists(int cityId)
{
return _context.Cities.Any(c => c.Id == cityId);
}
}
我的DBContext类:
public class CityInfoContext : DbContext
{
public CityInfoContext(DbContextOptions<CityInfoContext> options)
: base(options)
{
Database.Migrate();
}
public DbSet<City> Cities { get; set; }
public DbSet<PointOFInterest> PointOFInterests { get; set; }
}
我希望能够从类库中将所需的存储库注入到控制器中以执行数据库操作,并使我的回购和实体框架与Web API分开。