Ninject "custom" DBContext binding
本文关键字:quot binding DBContext custom Ninject | 更新日期: 2023-09-27 18:15:48
我目前正在一个虚拟MVC项目(尝试一些新的东西),但我有问题注入我的DatabaseContext到我的服务…
你可以在下面找到我的代码:
我DatabaseContext:
public class DatabaseContext : DbContext
{
protected DatabaseContext() : base("DatabaseContext")
{
}
public DbSet<MacAddress> MacAddresses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
My service &我想在其中注入上下文的接口:
public interface IMacAddressService
{
List<MacAddress> GetAllMacAddresses();
}
public class MacAddressService : IMacAddressService
{
private readonly DatabaseContext _context;
public MacAddressService(DatabaseContext context)
{
this._context = context;
}
public List<MacAddress> GetAllMacAddresses()
{
return _context.MacAddresses.ToList();
}
}
我可以在我的IKernel上应用什么绑定来正确注入我的DatabaseContext ?
供参考:
我已经能够绑定类了,所以我的Ninject设置没有问题,我只需要知道如何绑定这个特定的上下文
我搜索了一下,但我能找到的只是如何将DbContext绑定到自己…
我使用EF教程中看到的自定义DbContext,以便我可以在我的服务中使用我的dbset(我稍后将为此使用存储库)
提前感谢!
您没有使用任何抽象来传递DatabaseContext
到您的服务,因此Ninject将在不需要任何额外配置的情况下解析它。
如果你想显式配置绑定,你可以使用Bind<DatabaseContext>().ToSelf()
编辑
我刚刚注意到你的DatabaseContext
构造函数是受保护的
protected DatabaseContext() : base("DatabaseContext")
{
}
您需要将其设置为公共,以便能够创建DatabaseContext
的实例