如何獲取由Context.SaveChanges()生成的sql查詢;命令。我需要這個,因爲用戶可以選擇爲數據分發創建一個腳本,而不是插入到本地基礎中。實體框架腳本生成
謝謝。
更新:
我在WCF數據服務中使用實體框架。
如何獲取由Context.SaveChanges()生成的sql查詢;命令。我需要這個,因爲用戶可以選擇爲數據分發創建一個腳本,而不是插入到本地基礎中。實體框架腳本生成
謝謝。
更新:
我在WCF數據服務中使用實體框架。
我的解決辦法是:不要使用WCF數據服務,這仍然是不完整,如果你需要的安全性和可靠性,使用WCF服務,這樣你就可以在自己的範圍內有實體框架。 Wcf數據服務還不夠成熟。
對於腳本,IAM使用字符串連接StringBuilder的使用。
如果您正在使用EF6,您可以使用DbContext.Database.Log
。例如,使用下面的SQL將被輸出到一起的一些性能數據控制檯:
Context.Database.Log = Console.WriteLine;
你也可以在你想從實際保存更改停止DbContext.SaveChanges
情況下進行攔截。
您可以找到有關這兩個記錄和攔截在this MSDN article信息。
這可以完成,但我使用的WCF數據服務非常有限。現在,我正在用stringbuilder創建sql腳本...是的,不是最好的解決方案。 – Mortalzera
順便說一下,生成的查詢非常複雜,幾乎不可能維護。 – Mortalzera
如果是查詢單個或少數幾個,你可以看到(及複印件)SQL Server Profiler中(www.codeproject.com/Articles/21371/SQL-Server-Profiler-Step-by-正在運行的精確查詢步)。如果你的意思是即時生成腳本,那麼我不確定。 – HockeyJ
我正在使用實體框架,生成的SQL非常複雜,我相信我會保持。 – Mortalzera
你能不能給他們提供一個非常簡單的軟件來接收數據(可能是CSV或者他們想要的)並使用標準接口。我不希望人們直接在數據庫上運行復雜的SQL腳本。 – HockeyJ