使用接口将数据库上下文注入到类中

我期待将数据库上下文注入到实现我的接口similar to this post的所有类中。使用接口将数据库上下文注入到类中

我有什么

public abstract class Service 

{

public Service(Context context)

{

Context = context;

}

public Context Context { get; }

}

每个服务类将有一个接口与方法

interface IRecipeTypeIndexService 

{

IEnumerable<RecipeType> GetAll();

}

所有服务类将继承抽象Service类,所以我此刻的具体类的样子

public class RecipeTypesIndexService : Service, IRecipeTypeIndexService 

{

public RecipeTypesIndexService(Context context) : base(context)

{

}

public IEnumerable<RecipeType> GetAll()

{

return Context.RecipeTypes.AsEnumerable();

}

}

而我的ninject绑定看起来像

Kernel.Bind<DbContext>().ToSelf().InRequestScope(); 

Kernel.Bind<Service>().ToSelf().InRequestScope();

我想什么做的是它让我的接口IRecipeTypeIndexService等服务接口创建继承另一个接口IService这是Ninject绑定到抽象Service类,从而使实施IWhateverService都必须具体类有一个注入数据库上下文到基类的构造函数,所以我的具体类看起来像这样:

public class RecipeTypesIndexService : IRecipeTypeIndexService 

{

public RecipeTypesIndexService(Context context) : base(context)

{

}

public IEnumerable<RecipeType> GetAll()

{

return Context.RecipeTypes.AsEnumerable();

}

}

这可能吗?这是我第一次使用Ninject,并且我是使用依赖注入的新手。

回答:

UPDATE

我事后知道这是不可能的事情。

正如我设置Ninject,以便在构造函数中的任何位置具有已经初始化的上下文,我不需要抽象类。然后

我的服务类将是这样的:

public class RecipeTypesIndexService : IRecipeTypeIndexService 

{

private Context context { get; }

public RecipeTypesIndexService(Context context) : base(context)

{

this.context = context;

}

public IEnumerable<RecipeType> GetAll()

{

return context.RecipeTypes.AsEnumerable();

}

}

我并不需要一个抽象基类的。

以上是 使用接口将数据库上下文注入到类中 的全部内容, 来源链接: utcz.com/qa/260033.html

回到顶部