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

C# 如何为WPF应用程序创建内置数据库,c#,wpf,postgresql,C#,Wpf,Postgresql,我计划用PostgreSQL数据库构建一个C#WPF桌面应用程序(使用设置和一些文本框数据存储) 此应用程序的用户不会在其计算机上安装数据库服务器。我可以用WPF应用程序构建一个“内置”/“运行时”数据库(取其名称)吗 我是数据库应用程序新手,我的问题是: 我是否可以使用PostgreSQL部署WPF应用程序,并且用户可以在没有SQL server的情况下安装并仍然使用该应用程序 在用户有SQL server的情况下部署应用程序是否与在用户没有SQL server的情况下部署应用程序有任何区别

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

此应用程序的用户不会在其计算机上安装数据库服务器。我可以用WPF应用程序构建一个“内置”/“运行时”数据库(取其名称)吗

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

  • 我是否可以使用PostgreSQL部署WPF应用程序,并且用户可以在没有SQL server的情况下安装并仍然使用该应用程序

  • 在用户有SQL server的情况下部署应用程序是否与在用户没有SQL server的情况下部署应用程序有任何区别


  • 我需要高性能的东西。我有多达50个并发插入,每个以10毫秒的速度插入数据,我在几秒钟内将数千个数据存储到数据库中。我不认为SQLite或SQLCompact可以完成这项工作。我需要嵌入数据库,但如果用户试图安装应用程序,但无法访问数据库保存设置和文本框数据,应用程序将无法工作。您还需要让安装程序部署数据库。我会研究类似sqlite的东西,以便与您的应用程序一起安装。

    为此,我可以建议您使用Firebird,它在处理本地或远程数据库时没有任何区别

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

    编辑*
    关于SQLServer Express,请检查这个“

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


    RavenDB的速度稍快,但就每个数据库的Mb而言,其占用空间比VelocityDB大3倍多。RavenDB的TCO也有所提高。

    看起来您实际上并不需要SQL本身,所以请看一看 并查看键值存储是否能满足您的需要

    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
    

    你是说内置数据库吗?为什么你不认为SQLite可以工作?@grantik我记得每当我安装一些软件(带有数据库)时,我的计算机上都没有安装任何数据库。将应用程序与数据库一起部署是什么意思?grantk:任何合适的嵌入式数据库都可以工作,而无需预先安装。他们可以从代码中创建和种子数据库@KMC您至少应该看到一个文件(通常位于%AppData%或应用程序文件夹中),该文件就是数据库。sqlite和Berkeley DB只是带有库的文件,可以有效地访问这些文件。我需要一些高性能的东西。我有多达50个并发插入,每个以10毫秒的速度插入数据,我在几秒钟内将数千个数据存储到数据库中。我不认为SQLite或SQLCompact可以完成这项工作。不过我需要嵌入数据库。你想存储多少数据?另外,您希望多个用户访问同一个嵌入式数据库,还是每个用户都有自己的实例,因为缺少更好的word?每个用户只有一个实例。用户可以将所有设置和数据存储到一个文件中,以便以后上传