2012-11-21 53 views
4

在ASP.NET 4.5 C#實體框架5代碼優先項目我想在運行時記錄數據庫中所做的更改(日誌記錄必須在asp中完成。網絡應用程序,而不是數據庫)。以前,SQL語句是由代碼構建的,而這些語句只是簡單地記錄下來的。現在使用EF,該對象通過linq被檢索到實體,並被修改並且被調用。實體框架5運行時日誌數據庫的變化

db.SaveChanges(); 

被調用。我的第一個想法是檢索EF發送到數據庫的實際SQL語句 - 但這似乎相當複雜。我在調試過程中發現了許多用於顯示SQL的「解決方案」,但沒有簡單的方法讓代碼在運行時檢索它。

因此,我正在尋找任何可以記錄正在進行的更改的解決方案(要麼發送到數據庫的SQL [首選],要麼對該對象所做的更改的其他形式的文本表示)不需要包含許多複雜的調試庫。

回答

0

我還沒有EF 4.5測試,所以可以根據需要進行調整了一下,但我覺得爲了調試的目的在這個崗位的底部寫的擴展方法:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/2a50ffd2-ed73-411d-82bc-c9c564623cb4/

給出我正確輸出我的實體.SaveChanges()調用。它不需要任何外部庫,因爲它是作爲擴展方法編寫的,所以不會阻塞你的代碼。

+0

不幸的是,它並不適用於EF5和的DbContext。 – Tom