日期:2014-05-20  浏览次数:20815 次

EFCodeFirst插入表时,子表为空,验证不通过。
有两张类
class c1
{
   guid id;
   int aaa;
   int bbb;
   c2 c2Object;
}

class c2
{
  guid id;
  int ccc;
  int bbb;
}

其中配置的时候c2.ccc,和 c2.bbb 不能为空。 c1.c2Object 能够为空.
现在我ADD 一条数据 new c1{ aaa=1,bbb=2} 的时候报错为“对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。”
查看详细后是因为 c2.ccc,c2.ddd 为空,所以验证时报报错。请问如何才能插入c2为空的情况。
------解决方案--------------------
SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关

 db.Configuration.ValidateOnSaveEnabled = false;
      int count = db.SaveChanges();
         db.Configuration.ValidateOnSaveEnabled = true;