验证导航属性中的数据输入



如何验证或阻止用户执行Product.Ingredients.Add(new Ingredient())?当用户这样做时,每当新的成分被添加到成分表中。我希望它只添加现有的成分。

您可以通过重写 DBContext 中的保存更改方法来检查这一点。

public class YourDbContext:DBContext
{
//......
   public override int SaveChanges(){
      foreach(var entry in ChangeTracker.Entries<Ingredient>())
      {
         var entity = entry.Entity;
        if (entry.State == EntityState.Added)
        {
           this.Detach(entity );
        }
       }
     base.SaveChanges();
  }
}

最新更新