如何为WPF应用程序创建内置数据库

时间:2011-04-06 16:19:25

标签: c# wpf postgresql

我打算用PostgreSQL数据库构建一个C#WPF桌面应用程序(使用设置和一些文本框数据进行存储)。

此应用程序的用户将 NOT 在其计算机上拥有数据库服务器。我可以用WPF应用程序构建一个“内置”/“运行时”数据库(无论它叫哪个)吗?

我是数据库应用程序的新手,我的问题是:

  1. 我可以使用PostgreSQL部署WPF应用程序,用户可以安装并仍然使用没有SQL服务器的应用程序吗?

  2. 部署用户拥有SQL服务器的应用程序与部署用户没有SQL服务器的应用程序有什么区别吗?

  3. 我需要一些高性能的东西。我有多达50个并发插入,每个插入数据的速度为10毫秒,我在数秒内将数千个数据存储到数据库中。我不认为SQLite或SQL compact会做那个工作。我需要嵌入数据库

5 个答案:

答案 0 :(得分:1)

看看SQL Server Compact Edition

  

支持ClickOnce,XCopy,MSI,   CAB和非管理员嵌入式   安装选项

修改* 那么Sql Server Express,请查看Embedding SQL Server Express into Custom Applications

答案 1 :(得分:1)

看起来你本身并不需要SQL,所以看看LevelDB 并查看Key-Value商店是否符合您的需求。

  

LevelDB是一个在Google编写的快速键值存储库,提供从字符串键到字符串值的有序映射。

它是用C ++编写的,速度非常快:

Write Performance 
fillseq      :       1.765 micros/op;   62.7 MB/s
fillsync     :     268.409 micros/op;    0.4 MB/s (10000 ops)
fillrandom   :       2.460 micros/op;   45.0 MB/s
overwrite    :       2.380 micros/op;   46.5 MB/s

答案 2 :(得分:0)

如果用户尝试安装应用程序并且无法访问保存设置和文本框数据的数据库,则应用程序将无法运行。您还需要让安装程序部署数据库。我会在你的应用程序旁边查看类似sqlite的东西。

答案 3 :(得分:0)

为此,我可以建议您使用Firebird,它与本地或远程数据库的工作没有任何区别

答案 4 :(得分:0)

Plesase考虑使用VelocityDB,通过我的测试,嵌入式数据库解决方案的价格和性能之间的最佳折衷。这是一种NoSQL方法。它支持Linq查询。不需要ORM只需要实现通用存储库来模拟EF类型的行为。在8s 150ms内插入600000k记录,从该子集中过滤3k。快。

RavenDB稍微快一点,但它在每个数据库的Mb方面的占用空间比VelocityDB大3倍。 RavenDB TCO也提升了。