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

时间:2012-05-24 20:52:56

标签: entity-framework entity-framework-4

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

1 个答案:

答案 0 :(得分:1)

您可以通过覆盖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();
  }

}