EF6学习笔记十五:调试EF框架源码

要专业系统地学习EF推荐《你必须掌握的Entity Framework 6.x与Core 2.0》。这本书作者(汪鹏,Jeffcky)的博客:https://www.cnblogs.com/CreateMyself/ 今天继续学习EF,但是看来看去,实在是感觉不爽啊,因为你不知道源码里面到底是什么回事,我只能去猜去想象,要是有源码给我看几个单词也好啊。 百度吧。还是找到几篇博客,看上去不是很难弄。 https://www.cnblogs.com/michaellfx/p/3806857.html https://www.cnblogs.com/zhesong/p/EF6Debug.html 先下载EF的源码:https://github.com/aspnet/EntityFramework6 我不知道这是6.几的版本,也不知道这是不是官方的 创建自己的控制台项目,引入两个程序集,并且控制台程序添加对这两个程序集的引用, 把这两个程序集的强签名去掉,重新生成解决方案 这里要注意,我们只引入了EntityFramework和EntityFramework.SqlServer,如果我们想要用数据迁移是不行的,可能要还要引入其他的程序集,我做了,没有成功。 所以,我们只能自己手动地去创建数据库,并且数据模型的配置也要写,并且你要保证你的配置和手写的数据库是完全匹配的。 你可以在另一个项目中把model、配置都写好,测试没问题,拿到这个项目中复制。 我的三个model View Code 配置如下 View Code 查询数据,打印看看 View Code 报错,找不到程序集 我们把源码中的这里改成null app.config配置文件中也改一下,pulicKeyToken改成null View Code 然后打印数据,出来了 这里要注意一个问题,EFDbContext中要一次性写好,不能运行了项目,再对EFDbContext进行改动,这样他会说你的文件改动要执行数据迁移,更新数据库。但是我们刚刚就强调了,只是引入了两个程序集,无法提供数据迁移的功能 我开始就是这样,EFDbContext中的配置没有写,可能是EF无法匹配到数据库,一直进行它的默认连接,即使我给他指定了连接字符串(我要求他连接到_201901202.EFDbContext这个数据库,但是我的配置和数据不匹配,他就连接默认数据库:命名空间+上下文类名) 然后我改好EFDbContext,以为这下终于万无一失,但是他说支持“EFDbContext”上下文的模型发生了更改。考虑使用代码优先迁移来更新数据库。可是我迁移用不了啊! 所以我又写了一个EFDbContext2,把代码复制过来,这样终于行了,连接到指定的数据源了。 https://www.cnblogs.com/jinshan-go/p/10296665.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信