MergeOption Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica como os objetos que estão sendo carregados no contexto do objeto são mesclados com objetos já no contexto do objeto.
public enum class MergeOption
public enum MergeOption
type MergeOption =
Public Enum MergeOption
- Herança
Campos
| Nome | Valor | Description |
|---|---|---|
| AppendOnly | 0 | Os objetos que não existem no contexto do 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 com valores de 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. |
| OverwriteChanges | 1 | Os objetos que não existem no contexto do 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 com valores de fonte de dados. O estado da entrada do objeto é definido como Unchanged, nenhuma propriedade é marcada como modificada. |
| PreserveChanges | 2 | Os objetos que não existem no contexto do objeto são anexados ao contexto. |
| NoTracking | 3 | Os objetos são mantidos em um Detached estado e não são rastreados no ObjectStateManager. No entanto, entidades geradas pelo Entity Framework e entidades POCO com proxies mantêm uma referência ao contexto do objeto para facilitar o carregamento de objetos relacionados. |
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. 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 a MergeOption 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 com 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 com valores de fonte de dados. Os valores originais de propriedades não modificadas são substituídos com os 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.