如果我有这个项目结构
这不应该允许我阻止从 Foo.Web 添加对 EntityFramework 的引用吗?
如何调用
System.Data.Entity.Database.SetInitializer()
来自我的global.asax.cs
不添加 EntityFramework 引用?
最佳答案
你为什么想要?
您进行这种解耦的原因是(我假设)使您能够在以后切换数据层,而不必修改 Web 项目中的任何内容,并且在业务项目中尽可能少地进行修改。为此,您应该确保所有类都针对接口(interface)工作,而不是针对具体实现。
在您的示例中,您可能应该定义一个 Repository
某种接口(interface),其中包括 Initialize()
方法。然后,您创建一个实现该接口(interface)的类(可能是您的专用 DbContext),并针对它进行操作。在 Initialize()
存储库中的方法,调用 Database.SetInitializer()
因此,您永远不必在 Web 或业务项目中引用 System.Data.Entity。
关于asp.net-mvc - 将 ASP.NET MVC 应用程序与 Entity Framework 解耦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6238694/