Como atualizo um arquivo .dbml do Linq to SQL?
fonte
Existem três maneiras de manter o modelo sincronizado.
Exclua as tabelas modificadas do designer e arraste-as de volta para a superfície do designer no Database Explorer. Eu descobri que, para que isso funcione de maneira confiável, você deve:
uma. Atualize o esquema do banco de dados no Database Explorer (clique com o botão direito do mouse, atualize)
b. Salve o designer depois de excluir as tabelas
c. Salve novamente depois de arrastar as tabelas de volta.
Observe, porém, que se você tiver modificado alguma propriedade (por exemplo, desativando a propriedade filho de uma associação), isso obviamente perderá essas modificações - você precisará fazê-las novamente.
Use SQLMetal para gerar novamente o esquema do seu banco de dados. Eu já vi várias postagens de blog que mostram como fazer isso .
Faça as alterações diretamente no painel Propriedades do DBML. Isso funciona para alterações simples, como permitir nulos em um campo.
O designer DBML não é instalado por padrão no Visual Studio 2015, 2017 ou 2019. Você precisará fechar o VS, iniciar o instalador do VS e modificar sua instalação. As ferramentas LINQ to SQL são o recurso que você deve instalar. Para o VS 2017/2019, você pode encontrá-lo em Componentes individuais> Ferramentas de código .
Para atualizar uma tabela no seu diagrama .dbml com, por exemplo, colunas adicionadas, faça o seguinte:
fonte
Você também pode verificar o PLINQO conjunto de modelos de geração de código, baseado em CodeSmith, que permitem que você faça um monte de coisas legais para e com Linq-to-SQL:
Confira o site do PLINQO em http://www.plinqo.com e dê uma olhada nos vídeos de introdução.
A segunda ferramenta que conheço é a ferramentas Huagati DBML / EDMX , que permitem a atualização dos arquivos de mapeamento DBML (Linq-to-SQL) e EDMX (Entity Framework) e muito mais (como convenções de nomenclatura etc.).
Marc
fonte
Usamos um modelo T4 gravado personalizado que consulta dinamicamente o modelo information_schema para cada tabela em todos os nossos arquivos .DBML e, em seguida, substitui partes do arquivo .DBML por novas informações de esquema do banco de dados. Eu altamenterecomendo a implementação de uma solução como esta - ela me economizou muito tempo e, ao contrário de excluir e adicionar novamente suas tabelas ao seu modelo, você mantém suas associações. Com esta solução, você receberá erros em tempo de compilação quando o esquema for alterado. Você quer ter certeza de que está usando um sistema de controle de versão, porque a diferença é realmente útil. Essa é uma ótima solução que funciona bem se você estiver desenvolvendo com uma primeira abordagem de esquema de banco de dados. É claro que não posso compartilhar o código da minha empresa, então você pode escrever isso sozinho. Mas se você conhece algum Linq-XML e pode frequentar a escola nesse projeto , pode chegar onde quer que esteja.
fonte
Eu recomendaria o uso do designer visual incorporado no VS2008, pois a atualização do dbml também atualiza o código gerado para você. Modificar o dbml fora do designer visual resultaria em falta de sincronia no código subjacente.
fonte
Há uma nuance na atualização de tabelas e na atualização do DBML ... Os relacionamentos de chave estrangeira nem sempre são trazidos imediatamente se forem feitas alterações nas tabelas existentes. A solução é fazer uma compilação do projeto e adicionar novamente as tabelas novamente. Eu relatei isso ao MS e está sendo corrigido para o VS2010.
A exibição DBML não mostra novas restrições de chave estrangeira
Observe que as instruções dadas na resposta principal não são claras. Para atualizar a tabela
fonte
No caso de atualização do procedimento armazenado, exclua-o do arquivo .dbml e reinsira-o novamente. Mas se o procedimento armazenado tiver dois caminhos (por exemplo: se algo; exibir algumas colunas; além disso, exibir outras colunas), verifique se os dois caminhos têm os mesmos aliases de colunas !!! Caso contrário, apenas as primeiras colunas do caminho existirão.
fonte
Aqui está o método passo a passo completo que funcionou para mim para atualizar o dbml LINQ to SQL e os arquivos associados para incluir uma nova coluna que eu adicionei a uma das tabelas do banco de dados.
Você precisa fazer as alterações em sua superfície de design, conforme sugerido por outras pessoas acima; no entanto, você precisa executar algumas etapas extras. Estas são as etapas completas:
fonte