监听EF执行的sql语句及状态

1、监听EF执行sql的方式

  • db.Database.Log += c => Console.WriteLine($"sql:{c}");
  • SQL Server Profiler

 

 public JDDbContext()
            : base("name=JDDbContext")
        {
            this.Database.Log += c => Console.WriteLine($"sql:{c}");
        }

 

2、查看EF对象上下文监听对象的状态

  • db.Entry<User>(userNew).State
  • db.Users.Where(u => u.Id == 21).AsNoTracking().FirstOrDefault(); //AsNoTracking() 函数用于设置当前操作不跟踪对象的状态,加一个可以提升性能
  • db.Entry<User>(user).State = EntityState.Modified;  //手动设置对象的状态
  • Find函数可以使用缓存,优先从内存查找(限于db),但是linq时不能用缓存,每次都是要查询的

  • db.Entry<User>(user5).Property("Name").IsModified = true;//指定某字段被改过
  • db.Entry<User>(user).State = EntityState.Modified; //指定某个实体被修改过

 

 

转载于:https://www.cnblogs.com/netlws/p/EF.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值