zoukankan      html  css  js  c++  java
  • ef 查询生成语句的几种方式

    前言

    整理一下ef 如何查看生成sql 语句的,现在有ef core 了,统一整理一下。

    正文

    方式如下:

    数据库监听

    这是一种推荐方式,因为调试和代码分开,不会有影响。

    然后连接:

    然后可以进行一些常规选择,保存监听的位置。

    然后是选择事件:

    只筛选Tsql相关的。

    然后通过列筛选:

    这里介绍几个,一个是HOMENAME,这个是电脑的电脑名,因为可能有多个用户在操作。其实一般来说,每个人的测试服务器的账号都是不一样的,也可以通过LOGINNAME 来筛选。

    然后一个就是数据库的DATABASENAME,这个你获取到的不一定是你查的那个数据库,但是你可以排除REPORTSERVER 这个数据库,因为这个是报告服务,而且频繁操作,非常影响你的查看。

    然后其他的其实可以按照自己的需求进行筛选。

    EF 链式

    EFForTestEntities eFForTestEntities = new EFForTestEntities();
    var sql=eFForTestEntities.User.AsNoTracking();
    Console.WriteLine(sql);
    Console.Read();
    

    通过调用AsNoTracking 查看,一般是另外写测试单元来查看。

    linq

    linq和上面的差不多,就是调用的方法改为:ToTraceString()

    Log 输出

    DbContext.Database.Log = (c) => { Console.WriteLine(c); }

    这种方式通过log 打印来输出,我们可以放在日志文件中,然后进行查看。

    这种方式同样使用与ef core,而EF 链式和linq 在.net core的ef是无法使用的。

    第三方工具

    在网上可以找到第三方工具在调试的时候可以查询到,个人表示不推荐,因为麻烦,而且sql 监听已经可以满足大部分调试需求。

  • 相关阅读:
    YII中表单验证
    YII中的表单挂件
    YII数据库操作(CURD操作)
    YII中的session和cookie
    YII中面包屑制作(当前位置:网站首页 >> 会员登陆)
    ios NSFileManager 用法详解
    iOS沙盒路径的查看和使用
    iOS7改变状态栏文字颜色
    iOS常用第三方库 -转
    Linux下mysql新建账号及权限设置各种方式总结
  • 原文地址:https://www.cnblogs.com/aoximin/p/13815936.html
Copyright © 2011-2022 走看看