2010-04-28 40 views
3

我以前曾使用過ASP.NET。我正在使用MS SQL服務器來存儲和檢索數據以顯示在一個項目的一些動態頁面中。我開始學習ASP.NET。現在我即將開始一個新項目,但這次我想將數據存儲在基於文件的數據庫中,比如說,一個Access文件。這個項目也是一個業餘愛好項目,我並不害怕擴展問題,因爲可能只有3個用戶同時使用該應用程序,並且不會有數據流量的預期。ASP.NET:基於文件的數據庫中的線程安全性

現在,關於我的問題:使用MS SQL數據庫,有幾個用戶同時讀寫Db沒有問題,因爲數據庫引擎會照顧到這一點,但是使用基於文件的數據庫在這種情況下,ADO.NET將成爲一個問題,對嗎?

我的意思是,我需要自己處理多用戶同步(使用某種同步機制,鎖定,互斥鎖,無論什麼)以確保線程在使用數據庫時的安全性,或者ADO.NET是否也照顧到了這一點?

我應該爲數據層使用一個singleton類嗎?

+1

爲什麼要使用Access?使用MS SQL,您還可以使用文件(.mdf文件)作爲數據存儲。 – fretje 2010-04-28 09:37:07

+0

問題不在於爲什麼。問題是關於基於文件的數據庫的線程安全性。 – Lobuno 2010-04-28 09:44:04

+0

我在說MS SQL也是基於文件的。 – fretje 2010-04-28 09:58:54

回答

1

正如fretje提到的,ms訪問不是用於Web應用程序的良好數據庫。但假設你已經知道爲了在ado.net中使用access db(除了使用正確的提供者),你不需要做任何特殊的事情。 ADO.Net將爲您處理所有這些事情。

關於有你的數據層爲單身,我真的不會推薦。

+0

好的,這是一個答案,謝謝。在這個特殊情況下,爲什麼Singleton類不是一個好主意,有沒有什麼特別的理由? – Lobuno 2010-04-28 11:56:10

+1

@Lobuno,Singleton類只能用於創建昂貴的類,因此只要應用程序處於活動狀態就想維護同一個實例。如果您將其用於其他任何事情,您將失去很多靈活性,並且維護起來會更困難。 – 2010-04-28 12:42:18