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.

Foi útil?

Solução

Usando Linq-to-Sql, você pode fazer com que as colunas no DataGridView pareçam diferentes das da tabela original:

  1. 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
  2. Use colunas de modelo no seu DataGridView
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top