2010-04-28 72 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