MergeOption Enumeração

Definição

Especifica como os objetos carregados no contexto de objeto são mesclados com os objetos que já estão no contexto de objeto.

public enum class MergeOption
public enum MergeOption
type MergeOption = 
Public Enum MergeOption
Herança
MergeOption

Campos

AppendOnly 0

Objetos que não existem no contexto de objeto são anexados ao contexto. Se um objeto já estiver no contexto, os valores atuais e originais das propriedades do objeto na entrada não serão substituídos pelos valores da fonte de dados. O estado da entrada do objeto e o estado das propriedades do objeto na entrada não são alterados. AppendOnly é a opção de mesclagem padrão.

NoTracking 3

Os objetos são mantidos em um estado Detached e não são acompanhados no ObjectStateManager. No entanto, entidades geradas pelo Entity Framework e entidades POCO com proxies mantêm uma referência ao contexto de objeto para facilitar o carregamento de objetos relacionados.

OverwriteChanges 1

Objetos que não existem no contexto de objeto são anexados ao contexto. Se um objeto já estiver no contexto, os valores atuais e originais das propriedades do objeto na entrada serão substituídos pelos valores da fonte de dados. O estado da entrada do objeto é definido como Unchanged e nenhuma propriedade é marcada como modificada.

PreserveChanges 2

Objetos que não existem no contexto de objeto são anexados ao contexto.

Comentários

O Entity Framework mantém apenas uma única instância de um objeto com uma chave de entidade específica no cache. Os EntityKey objetos são objetos imutáveis que representam a identidade do objeto. As chaves de entidade são usadas para executar a resolução de identidade no contexto do objeto. Para obter mais informações, consulte Trabalhando com chaves de entidade. Se uma entidade com a mesma identidade já estiver sendo rastreada, os dados provenientes da fonte de dados e os dados já no gerenciador de estado serão mesclados de acordo com o MergeOption da consulta.

Informações adicionais sobre MergeOption.PreserveChanges

Se o estado da entidade for EntityState.Unchanged, os valores atuais e originais na entrada serão substituídos por valores de fonte de dados. O estado da entidade permanece EntityState.Unchanged e nenhuma propriedade é marcada como modificada.

Se o estado da entidade for EntityState.Modified, os valores atuais das propriedades modificadas não serão substituídos pelos valores da fonte de dados. Os valores originais das propriedades não modificadas são substituídos pelos valores da fonte de dados.

No .NET Framework 4, o Entity Framework compara os valores atuais de propriedades não modificadas com os valores retornados da fonte de dados. Se os valores não forem os mesmos, a propriedade será marcada como modificada.

Somente as propriedades modificadas são mantidas na fonte de dados quando você chama ObjectContext.SaveChanges.

Aplica-se a