在尝试使用Entity Framework 5.0几周后,我想我已经理解了基础知识。有两种类型的代理 - 仅延迟加载和更改跟踪。我知道如何启用/禁用每个以及何时使用它们。但是,我想看看这些课程。我希望能够在调试时进入它们,我想看看逻辑实际上做了什么。但是,由于它们是运行时生成的,因此Visual Studio无法对其进行调试。理想情况下,我可以预先编译它们,但是现在我只想看看它们在做什么。
答案 0 :(得分:2)
我认为你实际上不能调试代理 - 至少不使用Visual Studio。类型是动态生成的。生成代理的代码在这里:http://entityframework.codeplex.com/SourceControl/changeset/view/190eef267fc7#src%2fEntityFramework%2fCore%2fObjects%2fInternal%2fEntityProxyFactory.cs(请注意,这是在EF6中完成的方式,但自EF5以来它没有太大变化)。您可能还想看一下这篇博文:http://davedewinter.com/2010/04/08/viewing-generated-proxy-code-in-the-entity-framework/ - 通过一些黑客攻击,您可以将生成的类型保存到磁盘并使用反射器查看代码。