在 VS 调试的时候,如果我们项目中使用的是 EntityFramework,查看 SQL 执行代码就不像 ADO.NET 那样直观了,我们需要设置下,可以参考下:

  1. How can I log the generated SQL from DbContext.SaveChanges() in my Program?
  2. 如何:显示生成的 SQL

按照 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 代码了。

EntityFramework 如何查看执行的 SQL 代码?的更多相关文章

  1. EntityFramework 7 如何查看执行的 SQL 代码?

    EF 其他版本:EntityFramework 如何查看执行的 SQL 代码? 在 EF7 中,并没有 Context.Database.Log 属性访问方式,但改变更加强大了,我们可以使用下面方式配 ...

  2. django框架 - 实时查看执行的sql语句

    django框架采用的ORM模型,我们可以通过mysql的日志记录实时看到执行的sql语句,具体步骤如下: 第一步:找到mysql的配置文件 第二步:编辑mysql配置文件 第三步:重启mysql 第 ...

  3. mysqlbinlog 查看执行的sql (row模式)

    记录一下:当bin-log的模式设置为 row时 不仅日志长得快 并且查看执行的sql时 也稍微麻烦一点:1.干扰语句多:2生成sql的编码需要解码. binlog_format=row 直接mysq ...

  4. MySQL 查看执行的SQL记录

    我们时常会有查看MySQL服务端执行的SQL记录.在MySQL5.1之后提供了支持,通过在启动时加入-l 或者--log选项即可: mysqld -l mysqld --log 在后面的版本(5.1. ...

  5. Django 之 查看执行的sql语句

    前提: 我的app名称为core,models.py内容如下: # coding:utf-8 from django.db import models # Create your models her ...

  6. laravel查看执行的sql语句

    方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ...

  7. Yii查看执行的SQL

    开户debug 修改配置文件 :protected/config/main.php, 'log' => array(            'class' => 'CLogRouter', ...

  8. LinqToSql EntityFramework(ef)查看生成的sql语句

    var dc=new DBDataContext(); TextWriter tw = new StringWriter(); dc.Log = tw; var list = dc.News.Skip ...

  9. Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询

    Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询     SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL ...

随机推荐

  1. MongooseHelper

    /** * Created by lbc on 2016/11/16. */var mongoose=require("mongoose");var db=mongoose.con ...

  2. arcmap插件不能调试(转)

    1, 进入ArcGIS Desktop安装目录,如:C:\Program Files\ArcGIS\Desktop10.0 2, 进入Bin文件夹,备份ArcMap.exe.config文件,以备恢复 ...

  3. VMware Workstation 12序列号

    VMware Workstation 12序列号:5A02H-AU243-TZJ49-GTC7K-3C61N 就好像之前微软,让大家用盗版一样,这样可以更快的拥有市场占有率.事实上,输入key即可永久 ...

  4. (转)小小科学家的归来 by 王珢

    小小科学家的归来 by 王垠很多人来信关心我的现状,所以在写别的技术性文章之前,先说说我现在的情况吧.虽然自己追求的东西和经历都比较不同寻常,但是也许可以给奋斗中的人们一些慰藉和鼓励. 首先是超级好消 ...

  5. 学习安装并配置前端自动化工具Gulp

    Gulp和所有Gulp插件都是基于nodeJs来运行的,因此在你的电脑上需要安装nodeJs,安装过程请移驾安装并配置前端自动化工具--grunt.安装完成后,通过运行cmd进入DOS命令窗口,如图: ...

  6. 初识CoreData与详解

    Core Data数据持久化是对SQLite的一个升级,它是iOS集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类. (1)NSManagedObjectModel(被管 ...

  7. 学习建模 - UML

    最轻量级的工具下载地址 http://staruml.io/download 下载解压依赖:libgcrypt11 https://pan.baidu.com/s/1i3wb6M5 学习地址 http ...

  8. ecma6 yield

    function * generator(k){ console.log('begin'); var x = yield k; console.log('x:',x); var y = yield x ...

  9. 实践Html5的上传文件

    技术点: 1.通过input的change事件获取文件信息: onchange = function() { this.files } 这个files属性是htmlInputElement接口的属性, ...

  10. linux 实践2.2 编译模块

    1.  理解模块原理 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维 ...