簡體   English   中英

在EF中覆蓋SaveChanges的多個上下文中具有共享代碼?

[英]Having a shared code in several contexts in EF overriding SaveChanges?

我正在開發一個應用程序,該應用程序大約有5個上下文,每個上下文與數據庫中的數據庫架構(例如帳戶,銷售,采購等方案)相對應,所有這些都連接到同一數據庫。 現在我建立在數據庫中存儲的審計功能,這是所有環境共享的功能,基本上,我重寫SaveChanges方法,還有我保存ChangeTracker.EntriesAudit中存在的表CommonContext ,現在我想要在所有上下文中應用相同的代碼,我在考慮以下兩個選項:

-在每個上下文中都有一個表,並在所有上下文中復制/粘貼審核代碼(糟糕的選擇)。

-在所有上下文中調用並打開CommonContext在我看來,這不是一個好習慣(在另一個上下文中打開一個上下文!,我將不得不引用CommonContext庫)。

這些是我能想到的唯一選擇,所以我在這里尋求幫助!

我先使用EF 6數據庫。

您試圖做的是創建一些常見的跨領域關注基礎結構,因此在這里重復和繼承不是不錯的選擇。 您應該寧願在上下文中使用公共接口訪問實體來創建存儲庫,而不是為了內部保留CommonContext而創建存儲庫裝飾器以進行審核。 您還必須確保CommonContext和其他共享相同的連接並在相同的TransactionScope下運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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