2012-11-20 73 views
2

經過幾個星期的Entity Framework 5.0試驗後,我認爲我理解了基本知識。有兩種類型的代理 - 僅延遲加載和更改跟蹤。我知道如何啓用/禁用每個以及何時使用它們。但是,我想查看這些類。我希望能夠在調試的時候進入它們,我想看看邏輯實際上做了什麼。但是,由於它們是運行時生成的,Visual Studio無法調試它們。理想情況下,我可以預先編譯它們,但現在我只想看看它們在做什麼。如何調試實體框架代理?

回答

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/ - 有些黑客可以將生成的類型保存到磁盤並使用反射器查看代碼。

+0

我介意Poco Proxies仍然在EF 5中......你知道嗎? – MayogaX

+0

是的,他們在EF5和EF6,我不認爲有任何刪除他們的計劃 - 你可以隨時禁用。沒有代理懶惰加載不起作用。 – Pawel