C# LINQ到SQL。在运行时更改表名

C# LINQ到SQL。在运行时更改表名,c#,reflection,linq-to-sql,aspxgridview,server-mode,C#,Reflection,Linq To Sql,Aspxgridview,Server Mode,我有6个结构相同但数据不同的表。在每个表中存储的记录不超过一百万条 为了提高绩效,我在每张表中只放了一年。所以我有我的表格,像这个文件2005,文件2006,ecc。。。 我刚刚完成了导入新年的程序,一切正常,但是aspxGridView(DevExpress)速度非常慢 因此,我必须启用ServerMode,实际上性能要好得多,但我不能再使用SQL访问正确的表String.Format(“Document_{0}”,year)因为ServerMode需要LINQ到SQL类 现在我把我所有的类都

我有6个结构相同但数据不同的表。在每个表中存储的记录不超过一百万条

为了提高绩效,我在每张表中只放了一年。所以我有我的表格,像这个文件2005,文件2006,ecc。。。 我刚刚完成了导入新年的程序,一切正常,但是aspxGridView(DevExpress)速度非常慢

因此,我必须启用ServerMode,实际上性能要好得多,但我不能再使用SQL访问正确的表
String.Format(“Document_{0}”,year)因为ServerMode需要LINQ到SQL类

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

如何在不每次重建项目的情况下获得相同的结果?


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

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

当然,你可以在接下来的10年里把它们全部加在一起,然后就完蛋了


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

是的,我想到了相同的解决方案,我会按照你的建议去做。。。我将在2020年之前创建空表。。。