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

Entity framework 验证输入到导航属性的数据,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我如何验证或阻止用户执行产品.配料.添加(新配料())? 当用户这样做时,任何新的配料都会添加到配料表中。我希望它只添加现有的成分。您可以通过覆盖DBContext中的save changes方法来检查这一点 public class YourDbContext:DBContext { //...... public override int SaveChanges(){ foreach(var entry in ChangeTracker.Entries<Ingre

我如何验证或阻止用户执行
产品.配料.添加(新配料())

当用户这样做时,任何新的配料都会添加到配料表中。我希望它只添加现有的成分。

您可以通过覆盖DBContext中的save changes方法来检查这一点

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();
  }

}
public类YourDbContext:DBContext
{
//......
公共覆盖int SaveChanges(){
foreach(ChangeTracker.Entries()中的var条目)
{
var实体=条目。实体;
if(entry.State==EntityState.Added)
{
这个。分离(实体);
}
}
base.SaveChanges();
}
}

Niceee,但如果我想从配料数据库添加新配料,那么你不能这样做。我以为你想限制一切。不是全部,但这是一个基本情况:(