Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os procedimentos armazenados podem ser adicionados ao O/R Designer e executados como métodos típicos DataContext . Eles também podem ser usados para ajustar o comportamento de tempo de execução padrão do LINQ to SQL que executa Inserções, Atualizações e Exclusões quando as alterações são salvas das classes de entidade para um banco de dados (por exemplo, ao chamar o método SubmitChanges).
Observação
Se o procedimento armazenado retornar valores que precisam ser enviados de volta ao cliente (por exemplo, valores calculados no procedimento armazenado), crie parâmetros de saída em seus procedimentos armazenados. Se você não puder usar parâmetros de saída, escreva uma implementação de método parcial em vez de confiar em substituições geradas pelo O/R Designer. Os membros mapeados para valores gerados pelo banco de dados precisam ser atribuídos a valores apropriados após a conclusão bem-sucedida das operações INSERT ou UPDATE. Para obter mais informações, consulte Responsabilidades do desenvolvedor na substituição do comportamento padrão.
Observação
O LINQ to SQL lida automaticamente com valores gerados por banco de dados para colunas de identidade (incremento automático), rowguidcol (identificador global exclusivo (GUID) gerado por banco de dados) e carimbo de data/hora. Os valores gerados pelo banco de dados em outros tipos de coluna resultarão inesperadamente em um valor nulo. Para retornar os valores gerados pelo banco de dados, você deve definir IsDbGenerated manualmente como true e AutoSync como um dos seguintes: AutoSync.Always, AutoSync.OnInsert ou AutoSync.OnUpdate.
Configurar o comportamento de atualização de uma classe de entidade
Por padrão, a lógica para atualizar um banco de dados (inserções, atualizações e exclusões) com alterações feitas nos dados nas classes de entidade LINQ to SQL é fornecida pelo tempo de execução do LINQ to SQL. O tempo de execução cria comandos padrão INSERT, UPDATEe DELETE que se baseiam no esquema da tabela (a coluna e as informações de chave primária). Quando o comportamento padrão não é desejado, você pode configurar o comportamento de atualização atribuindo procedimentos armazenados específicos para executar as inserções, atualizações e exclusões necessárias para manipular os dados em sua tabela. Você também pode fazer isso quando o comportamento padrão não é gerado, por exemplo, quando suas classes de entidade são mapeadas para exibições. Finalmente, você pode substituir o comportamento de atualização padrão quando o banco de dados requer acesso à tabela por meio de procedimentos armazenados.
Observação
As instruções neste artigo ilustram a versão mais recente da experiência de desenvolvimento interativo (IDE) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Você pode estar usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.
Para atribuir procedimentos armazenados para substituir o comportamento padrão de uma classe de entidade
Abra o arquivo LINQ to SQL no designer. (Clique duas vezes no
.dbmlarquivo no Gerenciador de Soluções.)No Gerenciador de Servidores ou Gerenciador de Banco de Dados, expanda Procedimentos Armazenados e localize os procedimentos armazenados que você deseja usar para os comandos Inserir, Atualizar e/ou Excluir da classe de entidade.
Arraste o procedimento armazenado para o O/R Designer.
O procedimento armazenado é adicionado ao painel de métodos como um DataContext método. Para obter mais informações, consulte Métodos DataContext (O/R Designer).
Selecione a classe de entidade para a qual você deseja usar o procedimento armazenado para executar atualizações.
Na janela Propriedades , selecione o comando a ser substituído (Inserir, Atualizar ou Excluir).
Clique nas reticências (...) ao lado das palavras Usar Tempo de Execução para abrir a caixa de diálogo Configurar Comportamento.
Selecione Personalizar.
Selecione o procedimento armazenado desejado na lista Personalizar .
Inspecione a lista de Argumentos de Método e Propriedades de Classe para verificar se os Argumentos de Método são mapeados para as Propriedades de Classe apropriadas. Mapeie os argumentos do método original (
Original_<ArgumentName>) para as propriedades originais (<PropertyName> (Original)) nos comandosUpdateeDelete.Observação
Por padrão, os argumentos do método são mapeados para as propriedades da classe quando os nomes correspondem. Se os nomes de propriedade alterados não corresponderem mais entre a tabela e a classe de entidade, talvez seja necessário selecionar a propriedade de classe equivalente para mapear se o designer não puder determinar o mapeamento correto.
Clique OK ou Aplicar.
Observação
Você pode continuar a configurar o comportamento para cada classe e combinação de comportamento, desde que clique em Aplicar depois de fazer cada alteração. Se você alterar a classe ou o comportamento antes de clicar em Aplicar, uma caixa de diálogo de aviso será exibida e oferecerá a oportunidade de aplicar as alterações.
Para voltar a usar a lógica de tempo de execução padrão para atualizações, clique nas reticências ao lado do comando Inserir, Atualizar ou Excluir na janela Propriedades e selecione Usar tempo de execução na caixa de diálogo Configurar Comportamento .
Conteúdo relacionado
- Ferramentas LINQ to SQL no Visual Studio
- Métodos DataContext
- LINQ to SQL (.NET Framework)
- Operações de inserção, atualização e exclusão (.NET Framework)