EntityFramework 如何查看执行的 SQL 代码?
在 VS 调试的时候,如果我们项目中使用的是 EntityFramework,查看 SQL 执行代码就不像 ADO.NET 那样直观了,我们需要设置下,可以参考下:
按照 MSDN 的设置,发现 DbContext 并没有 Log 属性,应该是 EntityFramework 版本问题,stackoverflow 中的“context.Database.Log = Console.WriteLine;”,是我们想要的答案,但是只能用于控制台应用程序,我们调试项目输出应该使用:Debug.WriteLine,但是这样又会抱如下错误:
异常信息:无法用“System.Diagnostics.Debug.WriteLine(string)”创建委托,因为它具有 Conditional 特性。
正确代码
根据 Log 属性的类型 Action
Context.Database.Log = new Action<string>(q => Debug.WriteLine(q));
这样调试项目的时候,我们就可以在“输出窗口”,看到 EntityFramework 生成并执行的 SQL 代码了。
作者:田园里的蟋蟀
微信公众号:你好架构
出处:http://www.cnblogs.com/xishuai/
公众号会不定时的分享有关架构的方方面面,包含并不局限于:Microservices(微服务)、Service Mesh(服务网格)、DDD/TDD、Spring Cloud、Dubbo、Service Fabric、Linkerd、Envoy、Istio、Conduit、Kubernetes、Docker、MacOS/Linux、Java、.NET Core/ASP.NET Core、Redis、RabbitMQ、MongoDB、GitLab、CI/CD(持续集成/持续部署)、DevOps等等。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
微信公众号:你好架构
出处:http://www.cnblogs.com/xishuai/
公众号会不定时的分享有关架构的方方面面,包含并不局限于:Microservices(微服务)、Service Mesh(服务网格)、DDD/TDD、Spring Cloud、Dubbo、Service Fabric、Linkerd、Envoy、Istio、Conduit、Kubernetes、Docker、MacOS/Linux、Java、.NET Core/ASP.NET Core、Redis、RabbitMQ、MongoDB、GitLab、CI/CD(持续集成/持续部署)、DevOps等等。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。