Tengo un escenario donde tengo que actualizar una entidad si existe o agregar una nueva si no existe.Entidad Marco: actualizar entidad o agregar si no existe
Me gustaría ejecutar un único método para esto (sería genial si fuera un solo viaje al servidor).
¿Hay algo así en EF?
Ahora mismo mi código es el siguiente:
var entity = db.Entities.FirstOrDefault(e => e.Id == myId);
if (entity == null)
{
entity = db.Entities.CreateObject();
entity.Id = myId;
}
entity.Value = "my modified value";
db.SaveChanges();
Pero me gustaría evitar la primera consulta, algo como esto:
var entity = new Entity();
entity.Id = myId;
entity.Value = "my modified value";
db.AddOrAttach(entity);
db.SaveChanges();
¿Hay algo similar? o tengo que realizar la primera consulta sin importar nada?
Gracias
Eche un vistazo a mi pregunta sobre cómo hacer un guardado genérico con EF: http://stackoverflow.com/questions/6018711/generic-way-to-check-if-entity-exists-in-entity-framework resultado de que era escribir un método de guardado genérico (insertar o actualizar según se requiera). Rápidamente se vuelve desordenado. – Yuck