NET问答: 如何记录 EntityFramework 中的所有 SQL 日志 ?
咨询区
PC.:
我正在 MVC5 项目中使用 EF 6.0
,为了方便调试和获取性能指标,我想记录 EF6 中的所有 sql 日志。
在 Java/Hibernate
中,我只需要设置 hibernate.show_sql=true
就可以了,不知道在 EF 中该如何设置等价操作呢 ?
回答区
Andrew:
EF 中有一个可接收 string 参数的委托方法 DbContext.Database.Log
,一般来说,只需要将实现 TextWriter 或其子类的 Write 方法赋上去就可以了,这样EF所有的日志都会被送到该 Write 中,比如下面的代码就是将日志输送到 Console 上。
using (var context = new BlogContext())
{context.Database.Log = Console.Write;// Your code here...
}
Ogglas:
EF Core 的日志记录已经和 .NET Core
的日志引擎整合了,下面的例子展示了如何将日志输出到 Console 上。
public class SchoolContext : DbContext
{//static LoggerFactory objectpublic static readonly ILoggerFactory loggerFactory = new LoggerFactory(new[] {new ConsoleLoggerProvider((_, __) => true, true)});//or// public static readonly ILoggerFactory loggerFactory = new LoggerFactory().AddConsole((_,___) => true);public SchoolContext():base(){}protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseLoggerFactory(loggerFactory) //tie-up DbContext with LoggerFactory object.EnableSensitiveDataLogging() .UseSqlServer(@"Server=.\SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;");}public DbSet<Student> Students { get; set; }
}
点评区
小编貌似已经多年不再使用 EF 了,不是因为不好,而是因为太好了,让我都忘记了如何写 SQL 了 ????????????,可抬头跳到 C# 之外,会 Linq 能不能跨领域我不知道,会 SQL 那绝对可以跨领域 ,比如:ES,Spark,Kudu,Tidb .... 对了,就连 Redis,MongoDB 都有支持 SQL 的扩展插件 .... 醉了????。
NET问答: 如何记录 EntityFramework 中的所有 SQL 日志 ?相关推荐
- SpringBoot中Mybatis打印sql日志
application.yml中加上 # springBoot+Mybatis 控制台打印SQL语句 (方式一) logging:level:com.zoctan.api.mapper : debug ...
- 三种方式让你轻松监控 EntityFramework 中的 sql 流转
大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们无法控制sql的生成策略,所以必须不要让自己 ...
- 审计数据在EntityFramework中的解决方案
概要 我们在项目开发中,通常会有数据审计的项目需求.即业务数据中要包含创建日期,修改日期,修改人等信息等.有些业务数据需要物理删除,有些数据需要逻辑删除. 通常审计数据并不大量参与业务运算,只是为审计 ...
- php 错误记录_PHP中把错误日志保存在系统日志中(Windows系统)
[将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] //关闭错误显示 ...
- 在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句
在开发中,我们想在调试中查看EF Core执行的sql语句,可以使用SQL Studio Manager Tools工具,另一种方式是使用EF Core提供的日志.在ASP.NET Core使用Ent ...
- 工作总结 EntityFramework中出现DateTime2异常的完美解决办法
EntityFramework中出现DateTime2异常的完美解决办法 今天在使用entityframework往数据库插入数据的时候,突然出现了一个数据类型转换异常的问题: System.Data ...
- C#开发笔记,点点细微,处处真情,记录开发中的痛点
该文章的最新版本已迁移至个人博客[比特飞],单击链接 C#开发笔记,点点细微,处处真情,记录开发中的痛点 | .Net中文网 访问. 概述 本系列文章将会向大家介绍本人实际开发过程中所遇到技术点和心得 ...
- java 记录考勤记录_Java中的记录器– Java记录示例
java 记录考勤记录 Today we will look into Logger in Java. Java Logger provides logging in java programming ...
- (转)如何在MySql中记录SQL日志(例如Sql Server Profiler)
SQL server有一个sql profiler可以实时跟踪服务器执行的SQL语句,这在很多时候调试错误非常有用.例如:别人写的复杂代码.生产系统.无调试环境.无原代码... ... 查了一下资料, ...
最新文章
- ARKIT/ARCore对比分析(二)
- 【数据结构】顺序表的应用(1)(C语言)
- Mongodb 请求处理流程
- mysql实体_mysql实体关系
- .NET 大数据实时计算--学习笔记
- 第九章 图形用户界面的并行化(待续)
- swift UI专项训练15 PcikerView老虎机视图
- 【CSWS2014 Main Conference】Some Posters
- 公司有代理 虚拟机安装ubuntu不能上外网
- 基于JSP的题库试卷管理系统免费下载
- 自学python能干些什么副业-揭秘!女程序员为啥更赚钱?这4个大招,用Python做副业躺赚...
- STM32开发环境搭建
- java实现简单的文字pk的小游戏
- 【知乎问答】有哪些特殊的搜索引擎?
- 不带任何脏字的英文骂人法
- java遍历变量_java – 循环遍历众多变量
- VMware与宿主机文件夹共享、虚拟机磁盘映射
- 实用软件收集(持续更新)
- Electron理论知识 1-GN语法及使用介绍
- 微信小程序添加(成功失败)提示音
热门文章
- 修改PATH导致fedora无法登录XWindow
- 安装vs2017出现闪退现象_Adobe Reader 闪退
- JavaScript方法
- 版本控制介绍以及常用的版本控制工具
- 在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字
- js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小
- linux cp 时 略过文件,CentOS下执行cp命令式提示略过文件夹
- mysql 三主_MySQL主主复制3
- dropbox_Google的新存储定价与Microsoft,Apple和Dropbox相比如何
- vue项目将token存在(vuex)store和localstorage中