调试Entity FrameWork源码

这里以Entity Framework6.0版本为例

1. 下载Entity Framework的源码,地址:http://entityframework.codeplex.com/SourceControl/latest

2. 利用sn.exe生成*.snk签名文件,这里比如是test.snk

参考地址:http://blog.csdn.net/xuplus/article/details/2417072

3. 将步骤1中下载的源码用vs2012打开,选中"EntityFrameWork" 项目,左键-》属性菜单-》签名

在签名页面中选中2中生成的test.snk文件,去掉“仅延迟签名”checkbox,

其他项目如法炮制,

4. 编译解决方案,copy 解决方案下的bin/debug目录下的dll,到一个目录下,比如说D:\MyDll

5. 打开新的vs2012窗口,新建一个mvc项目,这个以mvc 4为例,移除项目中已经添加的EntityFramework.dll的引用,

添加D:\MyDll\EntityFramework.dll和EntityFramework.SqlServer.dll

6.打开新建项目的Web.Config文件,

将下面的entityFramework section改成如下

 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=54a141ccd6ada35a" requirePermission="false" />

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

红色部分为步骤5中EntityFramework.dll的信息,其中PublicKeyToken的值,可以用步骤2中提到的sn.exe查看

打开vs自带的vs命令行工具,输入 sn -T D:\MyDll\EntityFramework.dll回车,输出的值就是PublicKeyToken

7. 运行项目,打断点,调试。

 

 

 

posted @ 2014-01-15 12:52  sunqixinxin  阅读(911)  评论(0编辑  收藏  举报