Compartilhar via


contexto de objeto Life-Ciclo Management (EntityDataSource)

Ao usar o EntityDataSource controlar, você pode fornecer seu próprio ObjectContext instância na ContextCreating evento. O controle usa este ObjectContext instância em vez de criar um novo. Você também pode impedir o EntityDataSource controle de descartar o ObjectContext no EntityDataSourceContextDisposingEventArgs evento. Isso é útil quando você deseja manter um único ObjectContext instância na sua página a ser usado por mais de um controle.

Acessando o ObjectContext

The EntityDataSourceContextCreatingEventArgs o objeto tem um Context propriedade que pode ser atribuída a um existente ObjectContext no ContextCreating manipulador de eventos.

O padrão a seguir descreve como usar um ObjectContext com mais de um instâncias das EntityDataSource controle:

  1. Instanciar o ObjectContext da página Load evento, e atribuir-lo para uma variável de membro de classe.

  2. Manipular o EntityDataSourceContextCreatingEventArgs evento, e atribuir o ObjectContext membro para o Context propriedade das EntityDataSourceContextCreatingEventArgs objeto.

  3. Manipular o ContextDisposing evento e o conjunto a Cancel() propriedade das EntityDataSourceContextDisposingEventArgs para true. Isso impede o descarte do ObjectContext.

  4. Repetir as etapas 2 e 3 para cada EntityDataSource controle na página.

  5. Chamar o Dispose método para descartar a ObjectContext. O contexto também é descartado quando a página é descarregada.

Para obter mais informações sobre como gerenciar uma longa ObjectContext, consulte Managing Resources in Object Services (Entity Framework).

O código a seguir mostra como criar um ObjectContext variável para o Page objeto e atribuí-lo para o Context propriedade das EntityDataSourceContextCreatingEventArgs objeto.

public partial class _Default : System.Web.UI.Page
    {
        AdventureWorksModel.AdventureWorksEntities objCtx =
            new AdventureWorksModel.AdventureWorksEntities();

        protected void EntityDataSource2_ContextCreating(object sender, 
            EntityDataSourceContextCreatingEventArgs e)
        {
            e.Context = objCtx;
        }
    }

Para manter essa objCtx Cancelar membro para referência futura, a ContextCreated evento conforme mostrado pelo seguinte código.

        protected void EntityDataSource2_ContextDisposing(object sender, 
            EntityDataSourceContextDisposingEventArgs e)
        {
            e.Cancel = true;
        }

Consulte também

Conceitos

Eventos EntityDataSource

Exemplo de Início Rápido de EntityDataSource

Outros recursos

Seleção de dados usando EntityDataSource