如何验证或阻止用户执行Product.Ingredients.Add(new Ingredient())
?
当用户这样做时,新配料会被添加到配料表中。我希望它只添加现有成分。
答案 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();
}
}