使用 LINQ to SQL 设计器设计 LINQ 类时,我有时需要对类重新排序,以便使 DataGridView 中的结果列以不同的顺序显示。不幸的是,这似乎非常困难;您需要剪切和粘贴属性,或者删除它们并手动重新插入它们。

知道 您可以在 DataGridView 中相当轻松地对列进行重新排序,但这会导致大量硬编码,并且我希望设计器能够与网格匹配。

有谁知道有什么更简单的方法可以实现此目的,或者剪切/粘贴是唯一可用的方法吗?

我尝试手动编辑 .designer.cs 文件,但重新排序属性似乎没有任何作用!

编辑: 只是为了澄清 - 我想重新排序 LINQ to SQL 设计器中的内容,而不是表中的内容。我在订购时没有犯下要求恢复到原始表格布局的错误;相反,我有一个表,我想在 Visual Studio 中拥有与 SQL Server 中不同的排序。

有帮助吗?

解决方案

使用 Linq-to-Sql,您可以通过以下方式使 DataGridView 中的列与原始表中的列显示不同:

  1. 在 Linq 查询中,按照所需的顺序提取所需的列,并将它们存储在 var 中。然后自动生成列应在 DataGridView 中按该顺序显示它们
  2. 在 DataGridView 中使用模板列
  3. 不要在 Linq-to-Sql 设计界面上使用拖放来创建实体。相反,手动创建它们并使用表和列属性将它们与数据库表关联

据我所知,设计器本身没有拖放列重新排序

其他提示

在您喜欢的 XML 编辑器中打开 [DataClasses].dbml 文件,然后对表的 [Column] 元素重新排序。保存并在 Visual Studio 中重新打开(或重新加载)设计器。设计器中显示的列的顺序将是固定的。

如果您处于对数据库中的列重新排序的情况下,并且现在希望在设计器中反映这个新顺序,我认为您必须从设计器中删除该表,然后再次将其放入。或者如果你使用 Sql金属 要生成 Linq-to-Sql 类,请在数据库上重新运行它并使用新生成的文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top