这可能是一个有100万个答案的问题,但它让我感到非常困扰。DbContext,注入还是不注入?
我有一个使用EF的mvc应用程序。现在,我将DbContext注入到业务对象中,还是以其他方式执行?
我明显可以注入它,但这样我最终在我的类中使用DbContext而不是类型化上下文。这意味着我没有IntelliSense和代码看起来不太优雅
如
var test=(from d in context.Set<User>() where d.Username=="testname" select d).FirstOrDefault();
相比键入可爱
var test=(from d in context.Users where d.Username=="testname" select d).FirstOrDefault();
现在我知道这是不是一个巨大的问题,但书写时数数以千计的线路,很高兴有智能感知,特别是如果其他编码人员不太熟悉的代码帮助。
我知道存在工作模式单元,但在我看来,这是魔鬼自己在EF参与时的工作,因为它有效地将存储库模式包装在存储库模式中,这只是荒谬的。所以这不是我的选择。
那么,我们注入,如果是的话,我们可以以某种方式结束了一个类型化的上下文?
或者我们不注射?
不知道你有什么问题。如果你使用代码生成的dbcontext代码,你应该有.Users。 – Kelmen
是的,如第二个例子。但是,如果使用注入,则必须使用DbContext基类,而不是它们生成的基类。 – coolblue2000
请检查这篇文章:http://mehdi.me/ambient-dbcontext-in-ef6 –