Entity Framework 6 中为数据库操作增加日志记录功能
来源:互联网 发布:房屋拍卖淘宝网 编辑:程序博客网 时间:2024/05/20 15:42
从EntityFramework6 开始,由于数据库提供程序不再继承自System.Data.Common.DbProviderServices,而改为继承自System.Data.Entity.Core.Common.DbProviderServices,因此不能像以前那样通过 DbProviderFactories.GetFactoryClasses() 方法获取提供程序的DataTable后再使用反射修改为自己实现的提供程序从而达到记录日志的功能,但是EF 6 的 DbContext 类为我们提供了一个 Database 属性,该属性返回一个System.Data.Entity.Database 对象,而该对象中包含一个 Log 属性,定义如下:
public Action<string> Log{ get { return this._internalContext.Log; } set { this._internalContext.Log = value; }}
因此,我们可以通过为该属性指定一个日志记录方法来达到记录SQL操作日志的目的:
public class MyDbContext: DbContext{ public MyDbContext() : base("ConnectionString") { Database.SetInitializer<MyDbContext>(null); base.Database.Log = Logger; }}
然后你可以定义你自己的Logger方法,在执行一次数据库操作时,EF6会多次调用该方法,其中有几次只是记录一个换行符(\r\n),其余分别为:执行的SQL语句,执行开始时间,执行结果,生成的查询参数(如果有的话),你需要分别进行处理。
0 0
- Entity Framework 6 中为数据库操作增加日志记录功能
- 使用NLog为Silverlight增加日志记录功能
- 10秒为任意数据库增加执行日志功能
- 10秒为任意数据库增加执行日志功能
- 10秒为任意数据库增加执行日志功能
- [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)
- Entity Framework 连接操作 Sqlite 数据库
- c# 使用Entity Framework操作Access数据库
- 为struts+spring+hibernate增加显示数据库操作语句功能
- 为应用程序增加日志操作
- Entity Framework中 定义数据库和验证
- 配置Haproxy增加日志记录功能
- asp.net在数据库中增加记录操作
- Entity framework 增加默认执行时间
- 为你的代码增加日志功能
- mysql记录操作日志功能
- entity framework 批量操作
- visual studio 2013 Entity Framework 6 MVC 5 体验(一)修改默认数据库,增加自定义字段
- 控件大小改变消息 WM_SIZE
- Logminer 数据库恢复及恢复归档文件
- Memcached常用命令及使用说明
- Java数组声明、创建、初始化
- 源码推荐(2月7日):Pinterest样式的菜单 自定义展示app工作流或使用指南
- Entity Framework 6 中为数据库操作增加日志记录功能
- msql数据备份与还原
- Java String.format()的用法
- cocos2d-x 2.2 在WINDOWS中如何创建项目
- 再谈string类型
- 烟雨里,只愿与君一曲相和
- Oracle enterprise linux6.2 kickstart无人值守自动化安装
- Thread类与Runnable接口的区别
- tshark命令