0

我正在尝试在我的项目中实现 DI(如果确实重要,请使用 Ninject)。现在我有QuestionController,它正在使用QuestionRepository

    private readonly IQuestionRepository _questionRepository;

    public QuestionsController(IQuestionRepository questionRepository)
    {
        _questionRepository = questionRepository;
    }

这没关系,但我QuestionRepository需要AskEntities对象,AskEntitiesEF 设计器生成的类在哪里。所以现在QuestionRepository我有:

 private AskEntities Db; 

如何实现不是类而是接口(类似于IAskEntities)?

谢谢你的帮助。

4

1 回答 1

2

但我的 QuestionRepository 需要 AskEntities 对象,其中 AskEntities 是 EF 设计器生成的类。所以现在在 QuestionRepository 我有private AskEntities Db;How to implement there not class but interface (something like IAskEntities) ?

出色地。我假设您的 AskEntities 对象是您的DbContext? 由于您的存储库实现特定于实体框架,我认为没有理由从您的存储库类中抽象出该依赖项。

您当然可以发送DbContext基类并用于context.Set<Question>访问不同的集合。但这会给你带来什么好处?您通常只为存储库类编写集成测试,因此无需创建另一个抽象。

于 2013-02-18T09:12:23.743 回答