如果使用附加对象(从上下文的同一实例加载的对象),则可以简单地使用:
if (context.ObjectStateManager.GetObjectStateEntry(myEntity).State == EntityState.Detached){ context.MyEntities.AddObject(myEntity);}// Attached object tracks modifications automaticallycontext.SaveChanges();如果您可以使用有关对象键的任何知识,则可以使用以下内容:
if (myEntity.Id != 0){ context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified);}else{ context.MyEntities.AddObject(myEntity);}context.SaveChanges();如果无法通过其ID来确定对象的存在,则必须执行查询查询:
var id = myEntity.Id;if (context.MyEntities.Any(e => e.Id == id)){ context.MyEntities.Attach(myEntity); context.ObjectStateManager.ChangeObjectState(myEntity, EntityState.Modified);}else{ context.MyEntities.AddObject(myEntity);}context.SaveChanges();


