【发布时间】:2012-03-19 10:50:08
【问题描述】:
我正在创建一个 数据访问层 (DAL) 来读取/修改一些存储在 XML 文件中的表。在我的应用程序运行时,这些表的行会经常更新,因此我考虑了两种可能的替代方案:
- 当应用程序启动时,我可以通过 DAL 加载表中的所有数据,并将它们放入一个数据结构中,例如
Dictionary。在应用程序运行时,此字典会不断更新。当应用程序关闭时,我调用 DAL 的一个方法,以便用字典中的新数据覆盖旧文件。 - 将这个字典隐藏到上层可能更正确,所以我可能在 DAL 中有一个
Dictionary私有字段。这样上层就会调用 DAL 的方法来更新表的行。
也许第二种方法比第一种更好?
【问题讨论】:
-
读者总是需要最新的价值观吗?或者他们可以对文件有一个“最终一致的”视图吗?另外,作者是否正确锁定文件以防止读取一半写入的数据?
-
这是一个winforms应用吗? XML 数据是否会存储在某个服务器上,应用程序的多个副本同时访问它?
-
@ChrisShain:唯一的读取器是应用程序本身,它是多线程的,因此不同的线程可以同时读取/写入表(和 XML 文件)。线程(即读者)需要有最新的值。
-
@ChrisLively:这是一个 WPF 应用程序。 XML 文件的单个副本存储在本地应用文件夹中。
标签: c# .net data-access-layer