c# - LINQ to SQL。実行時にテーブル名を変更する

原文 c# reflection linq-to-sql aspxgridview server-mode

同じ構造でデータが異なる6つのテーブルがあります。各テーブルには、100万件以上のレコードが格納されます。

パフォーマンスのために、私は各表に1年だけを入れました。だから私はこのDocument_2005、Document_2006、ecc ...
新しい年をインポートする手順を実行したところ、すべて正常に動作しましたが、aspxGridView(DevExpress)は非常に低速です。

したがって、ServerModeを有効にする必要があり、パフォーマンスはこれまでよりもはるかに優れていますが、ServerModeにはLINQ TO SQLクラスが必要なため、SQLを使用して正しいテーブルString.Format("Document_{0}",year);にアクセスすることはできません。

今、私はすべてのクラスをdbmlファイル内に配置し、すべてが正常に機能しますが、次の年に新しいテーブルを(同じ構造で)マッピングするには、手動で追加して毎年再構築する必要がありますか?
自動生成されたクラスのソーステーブル名を変更しようとしましたが、TableAttributeを別のテーブル名に変更して再構築すると、すべてが正常に機能します。

毎回プロジェクトを再構築せずに同じ結果を得るにはどうすればよいですか?

TypeDescriptor.AddAttributesを使用して、生成されたクラスのTableAttributeを変更しようとしましたが、機能しません。リフレクションについて考えていますが、この場合、リフレクションでは何もできないようです...
答え
はい、Linq-2-sqlはコードベースであるため、手動で追加して再デプロイする必要があります。それはほとんどのORMフレームワークに当てはまると思います。

もちろん、今後10年間は​​それらすべてを追加して、それで完了できます。

実際にパーティション分割などに移行しない限り、これが最善の方法です。それほど問題ではないと思います。
関連記事

javascript - MVCプロジェクトのアクションから返されたHTMLファイルのスクリプトへのパスが正しくありません

c# - マージフィールドを含むステートメントが機能しない場合のMicrosoft Word

c# - ASP.NET Webアプリケーションをビルドして起動し、Microsoft CodedUIテストを効率的で時間のかからない方法で実行します

c# - mvc scaffolding rawをデータベースから削除

c# - Mathos Parser-文字を演算子として使用する

java - 相互互換性のためにC#暗号化をJava(Android)暗号化に変換するヘルプ

c# - Model3DCollectionとModel3DGroupの違いは何ですか?

c# - ASP.NET MVC(部分的なビュー)を使用して同じページにレビュー製品(http投稿)を追加しようとしています

c# - log4net翌日の開始時にログファイルを上書きする

c# - サービス時間を垣間見る方法