[英]logg/audit trail on EF5
我正在尋找一種首先在EF5數據庫上執行日志更改/審核跟蹤的好方法。
我遇到的主要問題是當前一個舊的應用程序正在崩潰,並且它使用觸發器創建了日志,但是在該應用程序上,數據庫連接為該應用程序上的每個用戶使用一個特定的用戶(該應用程序上的每個用戶都有自己的數據庫用戶),因此當他們進行日志記錄時,他們會使用很多連接屬性作為默認值,例如userID和Host,許多記錄的表也沒有userID行,因此如果我使用EF,我想更新/插入的實體/ delete沒有任何用戶數據。
但是我的應用程序(MVC4)僅使用1個用戶(每個用戶使用相同的數據庫用戶)進行1個字符串連接,因此觸發器將存儲連接字符串中數據庫用戶的userId。
那么使用EF創建日志的好方法是什么? 有沒有一種方法可以使用觸發器?(並傳遞userID和其他?)。
我正在閱讀有關重寫onUpdate函數的信息,但他們也說它不能在EF5上運行
在DatabaseContext中,可以覆蓋SaveChanges函數。
您可以測試變更集以查找需要記錄的條目。 也許是底層的,即靠近數據層,但是它將在EF中工作。
您將獲得如下內容:
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries())
{
if (entry.State == EntityState.Added)
{
var needToLogAdd = entry.Entity as INeedToLogAdd;
if (needToLogAdd != null)
DoLogAdd(needToLogAdd);
}
}
base.SaveChanges();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.