Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O LINQ to SQL não impõe os seguintes requisitos, mas o comportamento é indefinido se esses requisitos não forem atendidos.
O método de substituição não deve chamar SubmitChanges ou Attach. LINQ to SQL gera uma exceção se esses métodos forem chamados em um método de substituição.
Os métodos de substituição não podem ser usados para iniciar, confirmar ou interromper uma transação. A SubmitChanges operação é realizada dentro de uma transação. Uma transação aninhada interna pode interferir com a transação externo. Os métodos de substituição de carregamento podem iniciar uma transação somente após determinar que a operação não estiver sendo executada em Transaction.
Os métodos de substituição deverão seguir o mapeamento aplicável de concorrência otimista. O método de substituição é esperado lançar ChangeConflictException quando um conflito de simultaneidade otimista ocorre. O LINQ to SQL captura essa exceção para que você possa processar corretamente a opção SubmitChanges fornecida em SubmitChanges.
Espera-se que os métodos create (
Insert) eUpdateoverride retornem os valores das colunas geradas pelo banco de dados para os membros do objeto correspondentes quando a operação for concluída com êxito.Por exemplo, se
Order.OrderIDfor mapeado para uma coluna de identidade (chave primária autoincremento), então o método de substituiçãoInsertOrder()deve recuperar a ID gerada pelo banco de dados e atribuir essa ID ao membroOrder.OrderID. Também, os membros de carimbo de data/hora devem ser atualizados para valores base de dados - gerados de carimbo de data/hora para certificar-se que os objetos atualizados são consistentes. A falha na propagação dos valores gerados pelo banco de dados pode causar uma inconsistência entre o banco de dados e os objetos rastreados pelo DataContext.É responsabilidade do usuário invocar a API dinâmica correta. Por exemplo, o método de substituição de atualização, somente ExecuteDynamicUpdate pode ser chamado. O LINQ to SQL não detecta ou verifica se o método dinâmico invocado corresponde à operação aplicável. Se um método inaplicável for chamado (por exemplo, ExecuteDynamicDelete para que um objeto seja atualizado), os resultados serão indefinidos.
Por fim, espera-se que o método de substituição execute a operação declarada. A semântica das operações LINQ to SQL, como o carregamento ansioso, o carregamento adiado e SubmitChanges) requer que as substituições forneçam o serviço especificado. Por exemplo, uma substituição de carga que retorna apenas uma coleção vazia sem verificar o conteúdo no banco de dados provavelmente levará a dados inconsistentes.