zoukankan      html  css  js  c++  java
  • ObjectContext,DataContext和DBContext 分别获取linq 的sql方法

    ObjectContext

    先定义一个扩展方法:

     public static string ToTraceString<T>(this IQueryable<T> t)
            {
                string sql = "";
                ObjectQuery<T> oqt = t as ObjectQuery<T>;
                if (oqt != null)
                    sql = oqt.ToTraceString();
                return sql;
            }

    使用方法:

      var query = db.Call.Where(a => a.CustomerId == id && a.IsActive == "Y"); //不能ToList(),必须为IQueryble<T>类型
     var sql= query.ToTraceString();

    DataContext:

    定义一个输出到debug窗口的类:

            public  class DebugTextWriter : System.IO.TextWriter
        {
            public override void Write(char[] buffer, int index, int count)
            {
                System.Diagnostics.Debug.Write(new String(buffer, index, count));
            }
    
            public override void Write(string value)
            {
                System.Diagnostics.Debug.Write(value);
            }
    
            public override Encoding Encoding
            {
                get { return System.Text.Encoding.Default; }
            }
        }

    使用:

                  using (var db = new NorthwindDataContext())
                {
                    List<Call> calls = (from p in db.Call
                                             where p.CustomerId == "12414"
                                             orderby p.UpdateTime
                                             select p).ToList();  //必须Tolist查询,延迟加载无法获得sql语句
                    db.Log=new DebugTextWriter();
               
                }

     注:DataContext也可以使用下列ToString()方法。

    DBContext 最简单,只需要ToString()方法。

      var query = db.Call.Where(a => a.CustomerId == id && a.IsActive == "Y"); //不能ToList(),必须为IQueryble<T>类型
    var sql = query.ToString();
  • 相关阅读:
    js 获取表单和页面控件数据
    vue axios upload 多个文件
    vue antd axios 使用
    antd vue 修改modal弹窗样式
    线性回归的改进-岭回归
    线性回归
    00
    集成学习方法之随机森林
    决策树
    第十讲 让机器像人类一样学习--强化学习-----学习总结
  • 原文地址:https://www.cnblogs.com/Benjamin/p/3510448.html
Copyright © 2011-2022 走看看