ASP.NET:基于文件的数据库中的线程安全

ASP.NET:基于文件的数据库中的线程安全,asp.net,Asp.net,我以前使用过ASP.NET。在一个我开始学习ASP.NET的项目中,我使用MS SQL server来存储和检索数据,以便在一些动态页面中显示。现在我准备开始一个新项目,但这次我想将数据存储在一个基于文件的数据库中,比如说,一个Access文件。这个项目也是一个爱好项目,我不担心扩展问题,因为可能只有3个用户将同时使用该应用程序,预计不会有be数据流量 现在,关于我的问题:使用MS SQL数据库时,多个用户同时读写Db是没有问题的,因为Db引擎会处理这个问题,但是在这种情况下,使用基于文件的数据

我以前使用过ASP.NET。在一个我开始学习ASP.NET的项目中,我使用MS SQL server来存储和检索数据,以便在一些动态页面中显示。现在我准备开始一个新项目,但这次我想将数据存储在一个基于文件的数据库中,比如说,一个Access文件。这个项目也是一个爱好项目,我不担心扩展问题,因为可能只有3个用户将同时使用该应用程序,预计不会有be数据流量

现在,关于我的问题:使用MS SQL数据库时,多个用户同时读写Db是没有问题的,因为Db引擎会处理这个问题,但是在这种情况下,使用基于文件的数据库和ADO.NET将是一个问题,对吗

我的意思是,我是否需要自己处理多用户同步(使用一些同步机制、锁、互斥等)以保证在处理数据库时的线程安全,或者ADO.NET也处理这个问题


我是否应该为数据层使用单例类

正如fretje所提到的,ms access不是用于web应用程序的好数据库。但是,假设您已经知道,为了在ado.net中使用access db,您不需要做任何特殊的事情(当然,除了使用正确的提供程序之外)。Net将为您处理所有这些


关于将您的数据层作为singleton,我真的不建议这样做。

为什么您要求助于Access?使用MS SQL,您还可以使用文件(一个.mdf文件)作为数据存储。问题不是为什么。问题是关于基于文件的数据库的线程安全。我是说MS SQL也是基于文件的。是的,但是MS SQL本身已经处理多线程了。是的,我知道在这种情况下不应该使用Access,我完全理解web应用程序的本质。但这不是问题,各位。这就像问“我在纽约哪里可以买到自行车”,然后得到的回答是“你应该在纽约买辆车”……好吧,这是一个答案,谢谢。在这种情况下,单例类不是一个好主意,有什么特别的原因吗?@Lobuno,单例类应该只用于创建成本较高的类,因此只要应用程序处于活动状态,您就需要维护同一实例。如果你把它用在其他任何事情上,你会失去很多灵活性,而且维护起来会更困难。