Gerar Tabela / Ver esquema de arquivo LINQ to SQL DBML
-
07-07-2019 - |
Pergunta
Eu gostaria de ter uma única fonte da descrição da estrutura de dados.
Algumas pessoas estão perguntando pode o arquivo DBML sendo atualizada quando é alterado no banco de dados. A maneira que eu faço é estúpido, mas comum; abri-lo, apagar tudo, e arrastar-soltar novamente. Ouvi dizer que há alguns 3rd party fazer os truques.
Mas estou pensando, alguma maneira de inverter a operação?
Em hibernação, existe uma maneira de construir a DDL do alvo DB da estrutura de dados XML.
É possível que o arquivo DBML irá conter todas as informações para reconstruir o DDL do banco de dados? (Por exemplo, ter uma cópia daqueles VIEW SQL, os códigos de procedimentos armazenados), e construir o "roteiro Criar" on the fly (como o que você faz no SQL Server Enterprise Manager)
Solução
O arquivo DBML só contêm tabelas, colunas, restrições de chaves estrangeiras e chaves primárias. Visualizações são armazenados da mesma forma como tabelas, então a única informação armazenada é o nome da vista e que colunas (w / Tipo, de nulidade etc) que ele voltar. A definição da visão em si não é armazenado e, portanto, não é possível extrair do arquivo dbml.
Se você usar o designer L2S eo arquivo DBML subjacente para modelagem de dados você vai perder:
- índices não-PK / teclas
- definições de visualização
- definições proc armazenados
- definições de funções
- tipos aliases
- ... etc ...
Dito isso, se você deseja gerar o SQL-DDL para defs mesa, FKs, PKs etc do seu DBML, meu add-in para o Visual Studio pode fazer isso por você. (Ele suporta sincronização para os dois lados DB -> dbml e dbml -> sql-ddl -> db Você pode baixá-lo e obter uma licença de avaliação de:
http://www.huagati.com/dbmltools/