多用户应用程序无需安装任何东西 - 允许并发用户写入的嵌入式数据库?

时间:2013-11-26 23:11:40

标签: .net winforms embedded-database

我需要创建一个应用程序

  1. 由多个用户同时使用
  2. 不需要任何安装
  3. 有一个集中的数据存储
  4. 数据必须存储在公司网络
  5. 无权访问公司的内部数据库服务器或网络服务器
  6. 这些限制不是我自己的 - 这些是来自我的客户 - 这是一家全球性公司的分支机构,在全球公司层面有一些大的IT政策限制,他们可以不影响他们的水平(类似的东西),但他们仍然需要一个软件。

    我的目的是找到 HOW ,尽管有这些限制,仍然可以为他们提供一份正常工作的软件。

    因此,唯一的选择(根据我的理解)是将数据存储在网络共享中 - 在一个或多个文件中。问题是找到一种方法如何提供对这些文件的并发写访问。

    到目前为止

    研究

    • 首先我想到的是使用SQL Server Compact并将其放在网络共享上

    SQL Server Compact allows only one connection when located on a network share

    • 然后我找到了SQLite - 做了一些研究,发现它比SQL CE有一些改进

    SQLite database file locked when writing, but possible concurrent reading operations

    • 然后我找到了VistaDB,它似乎提供了我需要的功能,但它非常昂贵 - 每个开发人员花费1295美元......

    VistaDB embedded database provides row and table level locking!

    如此精致的问题

    哪些嵌入式数据库支持并发用户写入权限? (在这方面,VistaDB是否有替代方案?) - 请提供事实,而不是意见。

1 个答案:

答案 0 :(得分:0)

1)唯一支持并发编辑的嵌入式数据库是VistaDB(至少我没有成功找到任何其他选项)

VistaDB official site -> take a look at Pros/Cons section! - (..)嵌入式数据库通常每次插入操作都会锁定整个数据库,我们不这样做。我们提供表级和行级锁定。

关于VistaDB的好处 - 它首先支持实体框架代码!

关于价格 - micoISVs有折扣(一年450美元+ 125美元升级)

2)如果您知道对数据库的并发写入非常罕见 - 那么您可以选择SQLite,它是一个免费的嵌入式数据库 - 因为SQLite允许并发读取,但在写入数据库时​​只允许一个连接。没有找到有关EF支持的任何信息。

3)如果您的用户很少,那么SQL Server Compact可能是最佳选择 - 它支持实体框架。