Answers:
14/06/2016是的......仍然得到upvotes: - /
17/03/2014我仍然收到此upvotes,铭记这原本是回答的日期。尽管列出的前三项仍然完全可行,但该列表将趋于过时。还有其他未列出的可用数据库技术。
您有几个立即可识别且免费的选项:
SQL Server Compact下载带有ADO.NET提供程序,您需要在代码中引用该提供程序。SQLite下载可能没有它,因此这里是一个链接:
http://sqlite.phxsoftware.com/
这三个都使用SQL,尽管可能有一些限制/怪癖。Management Studio使用Compact和LocalDB,而使用SQLite则需要另一个UI工具,例如SQLite Administrator:
http://sqliteadmin.orbmu2k.de/
有NoSQL替代方法,例如:
就个人而言,我会避免在其他免费选项面前使用MS Access。使用LocalDB,Compact或SQLite不会出错。它们都是可爱的小型数据库,它们在很少的RAM中运行相对较快-我喜欢我喜欢的关于喜欢Microsoft产品的宗教方面的个人偏爱:-)
我将Sterling用于Windows Phone编程,因为它是为使用隔离存储而构建的。我只看过RavenDb上的文章,但是我可以告诉你这是一个基于JSON的文档存储框架。
不要混淆这种情况(与SQLite,SQL Server Express LocalDB或SQL Server Compact Edition一起使用),但是那里还有其他嵌入式/本地数据库,其中一些是关系型的,其他是面向对象的:
并非所有这些都是免费的。SQL / LINQ /过程内支持在所有这些方面都不同。此列表仅出于好奇。
现在也有Karvonite,但是代码库链接已断开。当它再次上线时,我将研究此文件以进行WP7开发。
我建议使用SQLite。我们在我工作的地方开发的几乎所有应用程序都使用它。
它小巧紧凑。它确实要求DLL位于应用程序目录中,但是您不必安装其他软件(如Access或SQL Server)。而且,正如下面的danielkza所说,“ SQLite是公共领域,因此您完全不必担心许可问题。” 这确实可以带来很大的不同。
您可以使用System.Data.SQLite或csharp-sqlite在C#应用程序中使用与SQL或OleDB相同的方法来访问它。
您还将需要一个应用程序来编辑/管理数据库。我认为最好的是SQLite Studio。这里还有更多:
SQLite Admin
SQLite 2009 Pro(页面底部)
更新-11/7/25- 更多SQLite应用程序(有关SO的问题,请点击此处)
关于SQLite的更多信息:Wikipedia上的SQLite
使用SQLite的公司
自定义函数:此外,如果您正在查看SQLite核心函数,但没有找到自己喜欢的函数,则可以创建自己的自定义函数。这里有几个示例:
来自SO
Anoter示例
嵌入式Firebird可能是一个不错的选择
嵌入式版本是服务器的一个惊人变体。它是功能齐全的Firebird服务器,仅包含几个文件。由于不需要安装服务器,因此部署非常容易。
有一些非常好的点网驱动程序
如果要使用正式的Microsoft解决方案,请使用SQL Server Compact。这样的优点是,如果您需要这种功能,则可以与SQL Server一起使用复制。
如果想使用SQLite,那么非常小巧而又免费。这就是android用于其内部数据库的功能,因此它受到很好的支持,并且有很好的.NET绑定。
SQLite的一个明显优势是它是跨平台的。因此,如果您想将应用程序移植到Mono.NET,则无需对数据库实现进行任何修改。
我不喜欢这种解决方案的MS Access,但是很多人都将其包含在答案中。由于专有格式和平台依赖性,它受到限制。它确实有它的优点。如果您拥有MS Access的副本,则可以轻松地操作数据,可以以图形方式构建查询并创建宏。您可以轻松地将其与MS Office的其余部分集成。
在所有这些SQLite中,我会推荐我,因为它是如此紧凑,文档完善并得到了越来越多的开发人员支持,而不论平台如何。
编辑
我意识到还有另一种选择,这里的每个人都忘记提及
只要不需要关系表,就可以使用通过ADO.NET将CSV文件读取为数据集。(最重要的建议是,但在某些情况下将是合适的,并且不需要其他库来进行MS部署。
如果要使用.NET 4.0.2或更高版本构建项目,并且需要嵌入式数据库支持,请考虑使用SQL Server Express LocalDB。
这是Express系列的相对较新的功能,具有较小的安装空间和减少的管理开销(与Express的其他版本相比),但它保留了SQL Server的可编程性。也就是说,与Compact Edition不同,LocalDB不需要安装单独的ADO.NET提供程序即可与SQL通信。
有关更多详细信息,请参见以下内容:
SQL Express v LocalDB v SQL Compact Edition(MSDN博客)
SQL LocalDB与SQL Server CE(堆栈溢出)
那http://en.wikipedia.org/wiki/NoSQL_(RDBMS)呢?
特别是.Net的MongoDB
我已经成功使用了db4o。
基于文件的大型社区,易于使用。
许可详细信息
默认情况下,免费的通用公共许可证db4o根据GPL许可。
如果您打算在内部使用db4o,或者您还计划将自己的派生作品作为免费软件根据GPL进行开发和分发,则GPL许可证是理想的选择。
商业许可证如果要将db4o嵌入商业非GPL产品中,则需要商业许可证。商业许可证持有者可以获得高级服务和支持。
如果您不要求将其作为免费数据库,则没有提及的替代方法是VistaDB。这些都是托管代码,为嵌入式数据库提供了大量功能,并提供相当不错的性能。SQL CE和SQL Server Express之间的桥梁非常好,因为大多数VistaDB存储过程都可以在SQL Server Express中运行而无需修改。在这一点上,我也对客户服务感到非常满意。我一直在工作中使用它。没有启动服务。一个空的数据库大约1MB,而DLL也非常轻巧。有ADO.NET提供程序之类的东西。我很喜欢它。
SQL Server Express或MS Access