<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何捕獲 EF 生成的 SQL 腳本?

          共 1549字,需瀏覽 4分鐘

           ·

          2021-10-26 23:21


          咨詢區(qū)

          • nos

          請問我如何查看 entity framewrok 生成的 SQL 腳本,我用的是 MySQL Provider 。

          回答區(qū)

          • Nick Berardi

          你可以像下面這樣做:


          IQueryable?query?=?from?x?in?appEntities
          ?????????????where?x.id?==?32
          ?????????????select?x;

          var?sql?=?((System.Data.Objects.ObjectQuery)query).ToTraceString();

          如果你用的是 EF6:


          var?sql?=?((System.Data.Entity.Core.Objects.ObjectQuery)query)
          ????????????.ToTraceString();

          如果你用的是 EF6.3:


          var?sql?=?((dynamic)flooringStoresProducts).Sql;

          上面這三種方式都可以讓你看到那生成的 SQL 腳本。

          • isepise

          在?EF6.1?開始, 你不需要再硬編碼了,可以直接用 xml 配置攔截器的方式注入到?DataBase Logger?中,比如下面這樣:


          <interceptors>?
          ??<interceptor?type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger,?EntityFramework">?
          ????<parameters>?
          ??????<parameter?value="C:\Temp\LogOutput.txt"/>?
          ??????<parameter?value="true"?type="System.Boolean"/>?
          ????parameters>?
          ??interceptor>?
          interceptors>

          更多細節(jié),可以參考微軟的官方文檔:http://msdn.microsoft.com/en-us/data/jj556606

          • Josh Withee

          在 EF Core 5.0 中,可以直接調(diào)用 Query 的?ToQueryString()?方法即可,參考如下代碼:


          var?query?=?context.Set().Where(c?=>?c.City?==?city);
          Console.WriteLine(query.ToQueryString())

          然后就可以看到導入到 SQL SERVER 的 SQL 腳本啦。


          DECLARE?p0?nvarchar(4000)?=?N'London';

          SELECT?[c].[CustomerID],?[c].[Address],?[c].[City],?[c].[CompanyName],
          [c].[ContactName],?[c].[ContactTitle],?[c].[Country],?[c].[Fax],?[c].[Phone],
          [c].[PostalCode],?[c].[Region]
          FROM?[Customers]?AS?[c]
          WHERE?[c].[City]?=?@__city_0

          點評區(qū)

          沒想到通過 XML 配置也可以獲取 EF 的 SQL,很酷,學習了。


          往期精彩回顧




          【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程?★★★

          .NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務實戰(zhàn)-統(tǒng)一身份認證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了

          10個小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時任務管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務輕松實現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實際業(yè)務出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關于C#異步編程你應該了解的幾點建議

          C#異步編程看這篇就夠了


          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无毒不卡视频在线播放 | 国产伦精品一区二区三区视频痴汉 | 无码精品视频 | 欧美成人在线观看网站 | 精品国内视频 |