Como você pode reordenar colunas facilmente no designer LINQ to SQL?
-
09-06-2019 - |
Pergunta
Ao projetar classes LINQ usando o designer LINQ to SQL, às vezes precisei reordenar as classes para que as colunas resultantes em um DataGridView aparecessem em uma ordem diferente.Infelizmente isto parece ser extremamente difícil;você precisa recortar e colar propriedades ou excluí-las e inseri-las novamente manualmente.
EU saber você pode reordenar colunas facilmente em um DataGridView, no entanto, isso resultaria em muita codificação e quero que o designer corresponda à grade.
Alguém conhece alguma maneira mais fácil de conseguir isso ou recortar/colar é o único método disponível?
Tentei editar manualmente o arquivo .designer.cs, mas reordenar as propriedades não parece fazer nada!
Editar: Só para deixar claro: quero reordenar o que está no designer LINQ to SQL, não o que está na tabela.Não cometi nenhum erro ao fazer o pedido, exigindo a reversão ao layout original da tabela;em vez disso, tenho uma tabela que desejo possuir uma ordem diferente no Visual Studio e no SQL Server.
Solução
Usando Linq-to-Sql, você pode fazer com que as colunas no DataGridView pareçam diferentes das da tabela original:
- Na sua consulta Linq, extraia as colunas desejadas, na ordem desejada, e armazene-as em uma var.Em seguida, as colunas geradas automaticamente devem mostrá-las nessa ordem no DataGridView
- Use colunas de modelo no seu DataGridView
- Não use arrastar e soltar na superfície de design do Linq-to-Sql para criar suas entidades.Em vez disso, crie-os manualmente e associe-os à tabela do banco de dados usando propriedades de tabela e coluna
Pelo que eu sei, não há reordenação de colunas de arrastar e soltar no próprio designer
Outras dicas
Abra o arquivo [DataClasses].dbml em seu editor XML favorito e reordene os elementos [Column] da tabela.Salve e reabra (ou recarregue) o designer no Visual Studio.A ordem das colunas exibidas no designer será fixa.
Se você está no cenário em que reordenou as colunas no banco de dados e agora deseja que essa nova ordem seja refletida no designer, acho que você deve excluir a tabela do designer e colocá-la novamente.Ou se você usar SQLMetal para gerar suas classes Linq-to-Sql, execute-as novamente em seu banco de dados e use o arquivo recém-gerado.