2

我正在寻找一种解决方案,其中同一台机器上的多个应用程序访问同一个数据库。通常这些操作只是读取,因此我对必须提供并发写入访问也不感兴趣。

我检查了 SQL Server Express、SQL Server LocalDb、SQL CE、SQLite、MySQL,但不相信哪一个是最好的解决方案。我读到 SQL CE 允许并发读取访问,但 SQL Server LocalDb 不允许,我觉得这很奇怪,因为 MS 大肆宣传 LocalDb 是一个在功能上与 SQL Server 系列非常相似的版本,并且应该可以很容易地后来扩大规模。

我喜欢管理 5-10 个表,每个表的行数少于 5000 行,内容非常轻量级。

我正在寻找满足以下要求的解决方案:

  • 同一台机器上的多个应用程序的并发读取访问
  • 应该有点轻。我打算稍后将解决方案中的所有应用程序移动到另一台机器上,并且如果可能的话,我不想安装 200mb 的完整 SQL Server Ex@ress 版本。
  • 应该与 VS2012 express 配合使用(sqlite 和 mysql 在这方面非常不受支持,要么不支持 EF5,要么它们没有出现在服务器资源管理器中。
  • 应该是一个 SQL 解决方案,以便在 Workbench 或 Management Studio 或其他第三方应用程序等管理控制台中手动更新数据库表。
  • 应该与 EF 或其他 ORM 解决方案一起使用。我希望能够创建一个实体类并从中创建一个数据库或使用类对象更新表。此外,我想从表行填充类对象集合,而无需通过 SQL 代码。

我在 .Net 4.5 中以 C# 为目标,我想这归结为 SQL CE 是否能够完成允许并发读取的任务以及我如何加载 CE 数据表并在某种管理控制台中编辑和可视化内容的问题。SQL CE 也能与 EF5 配合得很好吗?有更好的建议吗?

4

2 回答 2

1

既然您要征求意见,SQLite就是我的答案。

我们知道没有其他嵌入式 SQL 数据库引擎支持与 SQLite 一样多的并发性。SQLite 允许多个进程一次打开数据库文件,并允许多个进程一次读取数据库。当任何进程想要写入时,它必须在其更新期间锁定整个数据库文件。但这通常只需要几毫秒。其他流程只是等待作者完成,然后继续他们的业务。其他嵌入式 SQL 数据库引擎通常只允许单个进程一次连接到数据库。

32 位 Windows (.NET Framework 4.5) 的设置

此安装程序包能够安装 Visual Studio 2012 的设计时组件。

于 2013-01-21T08:37:41.557 回答
0

SQL CE 与 EF5 和 VS 2012 Express 一起工作,非常轻量级,支持同一台机器上的多个阅读器,并且可以在 VS Pro+ 中结合 SQL Server Compact Toolbox 插件(或独立)进行管理(我是作者)

于 2013-01-21T09:51:01.877 回答