我正在尝试在我的项目中实现DI(使用Ninject,如果它确实重要)。现在我有QuestionController
,它正在使用QuestionRepository
:
private readonly IQuestionRepository _questionRepository;
public QuestionsController(IQuestionRepository questionRepository)
{
_questionRepository = questionRepository;
}
这没关系,但我的QuestionRepository
需要AskEntities
个对象,其中AskEntities
是由EF设计师生成的类。所以现在QuestionRepository
我有:
private AskEntities Db;
如何实现那里没有类而不是接口(有点像IAskEntities
)?
感谢您的帮助。
答案 0 :(得分:2)
但我的QuestionRepository需要AskEntities对象,其中AskEntities是由EF设计师生成的类。所以现在在QuestionRepository中我有
private AskEntities Db;
如何实现那里没有类而不是接口(有些像IAskEntities)?
好。我假设您的AskEntities对象是您的DbContext
?由于您的存储库实现特定于Entity Framework,因此我认为没有理由从存储库类中抽象出该依赖项。
您当然可以发送DbContext
基类并使用context.Set<Question>
来访问不同的集合。但是这会给你带来什么好处呢?您通常只编写存储库类的集成测试,因此无需创建另一个抽象。