LINQ to SQL.在运行时更改表名

本文关键字:运行时 to SQL LINQ | 更新日期: 2023-09-27 18:32:16

我有 6 个结构相同但数据不同的表。在每个表中存储更多或少于一百万条记录。

出于性能目的,我在每个表中只输入了一年。所以我有这样的桌子Document_2005,Document_2006,等等...我刚刚完成了导入新年的过程,一切正常,但aspxGridView(DevExpress)非常慢。

所以我不得不启用ServerMode,实际上性能要好得多,但我不能再使用SQL来访问正确的表String.Format("Document_{0}",year);因为ServerMode需要LINQ TO SQL Class。

现在我把我所有的类都放在 dbml 文件中,一切正常,但是在接下来的几年里,我必须手动添加并每年重建,如何映射新表(具有相同的结构)?我尝试在自动生成的类中更改源表名称,如果我将 TableAttribute 更改为不同的表名称并重建一切正常。

如何在不每次都重建项目的情况下达到相同的结果?

我尝试使用 TypeDescriptor.AddAttributes 来更改生成的类的 TableAttribute,但它不起作用。我正在考虑反思,但在这种情况下,反射似乎无能为力......

LINQ to SQL.在运行时更改表名

是的,Linq-2-sql 是基于代码的,因此您需要手动添加它们并重新部署。我想大多数ORM框架都是这种情况。

当然,您可以在接下来的 10 年内添加所有这些并完成它。

除非您真的转向分区等,否则这将是最好的方法。我想这不是什么大问题。