如何轻松地对 LINQ to SQL 设计器中的列进行重新排序?
-
09-06-2019 - |
题
使用 LINQ to SQL 设计器设计 LINQ 类时,我有时需要对类重新排序,以便使 DataGridView 中的结果列以不同的顺序显示。不幸的是,这似乎非常困难;您需要剪切和粘贴属性,或者删除它们并手动重新插入它们。
我 知道 您可以在 DataGridView 中相当轻松地对列进行重新排序,但这会导致大量硬编码,并且我希望设计器能够与网格匹配。
有谁知道有什么更简单的方法可以实现此目的,或者剪切/粘贴是唯一可用的方法吗?
我尝试手动编辑 .designer.cs 文件,但重新排序属性似乎没有任何作用!
编辑: 只是为了澄清 - 我想重新排序 LINQ to SQL 设计器中的内容,而不是表中的内容。我在订购时没有犯下要求恢复到原始表格布局的错误;相反,我有一个表,我想在 Visual Studio 中拥有与 SQL Server 中不同的排序。
解决方案
使用 Linq-to-Sql,您可以通过以下方式使 DataGridView 中的列与原始表中的列显示不同:
- 在 Linq 查询中,按照所需的顺序提取所需的列,并将它们存储在 var 中。然后自动生成列应在 DataGridView 中按该顺序显示它们
- 在 DataGridView 中使用模板列
- 不要在 Linq-to-Sql 设计界面上使用拖放来创建实体。相反,手动创建它们并使用表和列属性将它们与数据库表关联
据我所知,设计器本身没有拖放列重新排序
其他提示
在您喜欢的 XML 编辑器中打开 [DataClasses].dbml 文件,然后对表的 [Column] 元素重新排序。保存并在 Visual Studio 中重新打开(或重新加载)设计器。设计器中显示的列的顺序将是固定的。
如果您处于对数据库中的列重新排序的情况下,并且现在希望在设计器中反映这个新顺序,我认为您必须从设计器中删除该表,然后再次将其放入。或者如果你使用 Sql金属 要生成 Linq-to-Sql 类,请在数据库上重新运行它并使用新生成的文件。
不隶属于 StackOverflow