EF5.0修改实体的时候,出现“对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性这个错误

对于这个错误,要在SaveChanges前关闭验证实体有效性(ValidateOnSaveEnabled)这个开关

db.Configuration.ValidateOnSaveEnabled = false;//关闭验证

db.SaveChanges();

db.Configuration.ValidateOnSaveEnabled = true;//保存完之后再开启

 

或者,在创建EF上下文对象的时候,在线程中共享一个上下文对象

public DbContext GetDbContext() 

{

  DbContext dbContext = CallContext.GetData(typeof(DBContextFactory).Name) as DbContext;

  if(dbContext == null)

  {

    dbContext = new IZhanShiEntities();

    dbContext.Configuration.ValidataOnSaveEnabled = false;

    //将新创建的EF上下文对象存入线程

    CallContext.SetData(typeof(DBContextFactory).Name,dbContext);

  }

  return dbContext;

}

posted @ 2014-03-22 23:13  李亚杰  阅读(532)  评论(0编辑  收藏  举报