2

計算列を持つテーブルを持つ SQL 2005/2008 データベースがあります。計算列を NHibernate のディスクリミネーターとして使用しているため、データベースにあると非常に便利であることが証明されています。

より高速な統合テストの利点を得るために、SQLite や SQL CE などのインメモリ データベースに対して統合テストを実行できるようにしたいと考えています。しかし、どちらも計算列をサポートしているとは思いません。

私の問題に対する他の解決策はありますか?私はデータベースに完全にアクセスでき、より良い解決策があれば変更できます。計算列の代わりにビューを使用することを提案するこの投稿を見たことがありますが、これは最良の代替手段ですか?

4

1 に答える 1

1

私がしたことは、SqlCe からテーブルをロードするときに、計算された列を DataTable に追加することでした。計算された DataColumn の定義を、データベースに格納されている「構成」テーブルに格納しました。テーブルの「チェーン」に依存する複雑な計算を行うことができました。各テーブルは、より複雑な関数の単純な関数を実行しました。(チェーンの最後のテーブルには結果が含まれていました。) SqlCe を使用したのは、5 つのテーブルからなる 1 つのテーブルに 1,500 万行が含まれていたからです。ADO.NET のメモリ内データ セットのデータが多すぎます。(サーバーに投稿する前に、ローカル クライアント ベースの計算を使用する必要がありました。)

于 2009-09-12T00:26:30.697 に答える