实体框架4更新并插入一个功能

1 methods insert save entity-framework-4

我正在从SubSonic迁移到EF4.在SubSonic模型中有一个名为Save的函数,如果模型的键是0,则完成插入,否则进行更新.

有没有办法像SubSonic一样制作通用的Save功能?对于使用扩展方法的例子?

Lad*_*nka 8

是的,但你必须自己做.尝试这样的事情:

public interface IEntity
{
  int Id { get; set; }
}

...

public void SaveOrUpdate<T>(T entity) where T : IEntity
{
  using (var context = new MyContext())
  {
    if (entity.Id == 0)
    {
      context.AddObject(entity);
    }
    else
    {
      context.Attach(entity);
      context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
    }

    context.SaveChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)