簡體   English   中英

保存更改后發送電子郵件

[英]Send email after SaveChanges

我試圖使用實體框架作為dao將應用程序封裝為三層。 但是我看到這是不可能的! 因此,我開始在控制器中使用我的DbSet並執行以下操作:

var product = new Product();
product.Name = "product name";
db.Product.Add(product);
db.SaveChanges();

但是現在我沒有BL層,那么,如何設置一個觀察者在SaveChanges()之后發送電子郵件?

您可以在DBContext上覆蓋saveChanegs

 public class YourDbContext:DBContext
    {

       public override int SaveChanges(){
         foreach(var entry in ChangeTracker.Entries())
         {
           var entity = entry.Entity;
           if (entity is Entity1 or entity is Entity2)
           {
             //send email
           }
         }
         base.SaveChanges();
      }

   }

但這不是在DBContext中執行的好主意,因為這不是DbContext應該執行的操作。 發送電子郵件涉及一些業務邏輯,最好在業務層中使用它而不是數據訪問邏輯。

暫無
暫無

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

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