簡體   English   中英

EF5上的logg / audit跟蹤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM