EF Core中使用IDesignTimeDbContextFactory的测试方法,调试方法 电脑版发表于:2020/11/18 0:09 **DesignTimeDbContextFactory的作用** 一些EF Core Tools命令(例如Migrations命令)需要在设计时创建一个派生的DbContext实例,以收集关于应用程序的实体类型以及它们如何映射到数据库模式的详细信息。 比如ef 连接MySQL的时候我们可能就要使用到该接口。但是我们用它的时候很不好调试,因为他是执行迁移命令的时候运行的比如执行Add-Migration InitialCreate或者Update-Database等。 **调试方法1:记录日志** 不好调试就记录日志嘛,可以非常简单的直接写记事本,看看记录,这种是测试日志不是系统日志,不需要搞什么日志中心,日志组件什么的。 ``` /// <summary> /// 记录一点内容用于测试 /// </summary> /// <param name="content"></param> public void AddTestLog(string content) { using (FileStream filestraem = new FileStream("d:/log.txt", FileMode.Append)) { using (StreamWriter write = new StreamWriter(filestraem)) { write.WriteLine(content); write.WriteLine("记录时间:" + DateTime.Now.ToString()); write.WriteLine("----------------------------------------"); write.Flush(); } } } ``` 比如记录看看连接字符串获取成功没有。 ![](https://img.tnblog.net/arcimg/aojiancc2/a72cb9a5e2514f5d8d69a9aeba106a60.png) **调试方法2:复制代码到其他地方运行调试** 比如还是上面那个问题,如果我们查看获取字符串的日志一直没有成功,一直是空的,这个时候又不好调试找问题,就可以把想要调试的代码复制到其他地方运行调试,即可。比如这种复制到用户接口层一调试就找到问题了。 ![](https://img.tnblog.net/arcimg/aojiancc2/50cc253145814101b42e21a17d0c9dcf.png)