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