Windowsフォームアプリケーションのデータセットに関する質問があります。データセットはwinformsアプリケーション内のメモリにどのくらい保持されますか
パート1:
質問:
1)は、データベースにそれがインスタンス化されるたびにヒットデータセットです。
パート2:
仮定:
- 私の最初の質問への答えは、私が働いているデータセットは、比較的少量のデータを持っていることを
- 、およびアプリケーション自体真であります多数の同時ユーザーはいません。
- フォームの数はかなり多いかもしれませんが、同じデータセットを必要とします。
質問:
1)それがメモリ内のデータセットの静的なバージョンを格納するための悪い考えです。
オプション(これらの可能な解決策を評価):
オプション1:データセットのコンテナとして作用する静的クラスを作成します。
オプション2:データセットに必要な場所にデータセットを作成し、そのデータセットに依存する後続のフォームのプロパティを作成し、そのデータセットへの参照をその特定のフォームに渡して、GCがメモリを再割り当てしないようにします。 (そしてデータベース呼び出しの数を減らす)。
擬似コード:これは、データセットをインスタンス化する親フォームです。
public partial class ParentForm: Form
{
private DataSet dataset;
public ParentForm()
{
//logic that populates dataset
}
Button_Click(object sender, EventArgs e)
{
DependentOnDataSetForm dependent = new DependentOnDataSetForm(dataset);
}
}
擬似コード:これは、同じデータセットに依存するフォームです。
public partial class DependentOnDataSetForm : Form
{
private DataSet dataset;
public DependentOnDataSetForm (DataSet dataset)
{
this.dataset = dataset;
}
// Another from that depends on the same dataset.
Button_Click(object sender, EventArgs e)
{
DependentOnDataSetForm2 dependent = new DependentOnDataSetForm2(dataset);
}
}
ボーナス質問:(私の現在の状況には当てはまりませんが、将来の参考のために知っておくとよい)。
特定のフォームで必要とされる特定のデータのみを担当する複数のDataSet.xsdファイルを作成することをお勧めしますか。たとえば、(まったく仮説的):注文を満たす責任がある注文サービスがあるとします。この特定のサービスは注文テーブル、顧客テーブル、出荷テーブルなどにアクセスする必要があります。したがって、格納されている.xsdファイル必要なテーブルは良いアイデアですか?
別個の質問を作成してください。さもなければあなたの質問はコミュニティにとって有用ではありません。なぜなら、それは検索することが難しくなるからです。 –