如何验证或阻止用户执行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();
}
}