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:
Instanciar o ObjectContext da página Load evento, e atribuir-lo para uma variável de membro de classe.
Manipular o EntityDataSourceContextCreatingEventArgs evento, e atribuir o ObjectContext membro para o Context propriedade das EntityDataSourceContextCreatingEventArgs objeto.
Manipular o ContextDisposing evento e o conjunto a Cancel() propriedade das EntityDataSourceContextDisposingEventArgs para true. Isso impede o descarte do ObjectContext.
Repetir as etapas 2 e 3 para cada EntityDataSource controle na página.
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
Exemplo de Início Rápido de EntityDataSource