Pergunta

Existe uma maneira de chamar o comando T-Sql's MERGE de.NET Entity Framework 4?

Foi útil?

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
scroll top