2013-02-15 25 views
0

我想在我的項目中實現DI(如果它確實重要,請使用Ninject)。現在我有QuestionController,這是使用QuestionRepository如何使用EF(DB優先)正確實現DI?

private readonly IQuestionRepository _questionRepository; 

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

這是好的,但我QuestionRepository需求AskEntities對象,其中AskEntities由EF設計器生成的類。因此,在QuestionRepository現在我有:

private AskEntities Db; 

如何實現有沒有類,但是界面(像成才IAskEntities)?

感謝您的任何幫助。

+0

請更改您的問題。目前還不清楚你想知道什麼。 – Steven 2013-02-16 12:37:53

回答

2

但我的QuestionRepository需要AskEntities對象,其中AskEntities是由EF設計器生成的類。所以現在在QuestionRepository我有private AskEntities Db;如何實現那裏沒有類,但接口(有點像IAskEntities)?

好吧。我假設你的AskEntities對象是你的DbContext?由於您的存儲庫實現特定於實體框架,因此我沒有理由從您的存儲庫類中提取該依賴關係。

您當然可以發送DbContext基類,並使用context.Set<Question>來訪問不同的集合。但是,這會給你帶來什麼好處?您通常只編寫存儲庫類的集成測試,因此不需要創建另一個抽象。