我有一個關於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文件中的文件需要的表是一個好主意?
請創建單獨的問題。否則,你的問題對社區來說不是很有用,因爲搜索變得更困難。 –