MERGE em Entity Framework
-
27-10-2019 - |
Pergunta
Existe uma maneira de chamar o comando T-Sql's MERGE de.NET Entity Framework 4?
Solução
Não, essa funcionalidade integrada não existe - você deve criar a sua própria.Muito comum é, por exemplo, uma abordagem como:
public void SaveOrUpdate(MyEntity entity)
{
if (entity.Id == 0)
{
context.MyEntities.AddObject(entity);
}
else
{
context.MyEntities.Attach(entity);
context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
// You can call SaveChanges here or you can call it separately after multiple changes
}
Este é um exemplo para trabalhar com entidades desanexadas que têm Id
gerado automaticamente no banco de dados (IDENTITY
).O Id padrão para a nova entidade é sempre 0 porque o valor real será atribuído durante o salvamento das alterações.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow