我正在创建一个数据访问层(DAL)来读取/修改存储在XML文件中的一些表。虽然我的应用程序运行时,这些表中的行是经常更新的,所以我想两个可能的选择:数据访问层应该隐藏哪些细节?
- 应用程序启动时,我可以通过DAL加载表中的所有数据,并把它们放在数据结构,如
Dictionary
。在应用程序运行时,该字典不断更新。当应用程序关闭时,我调用DAL的方法,以便用字典中的新数据覆盖旧文件。 - 将字典隐藏到上层可能会更正确,因此我可能在DAL中有一个
Dictionary
专用字段。通过这种方式,上层将调用DAL的方法来更新表的行。
也许第二种方法比第一种更好?
读者是否总是需要最新的值?或者他们可以有一个“最终一致”的文件视图?另外,编写者是否正确锁定文件以防止读取半写入的数据? – 2012-02-29 22:42:04
这是一个winforms应用程序?将XML数据存储在某个服务器上的多个应用程序副本可以同时访问吗? – NotMe 2012-02-29 22:44:14
@ChrisShain:唯一的读者是应用程序本身,它是多线程的,所以不同的线程可以同时读取/写入表(和XML文件)。线程(即阅读器)需要具有最新的值。 – enzom83 2012-02-29 23:11:08