C# 存储在文件中而不需要服务器的最佳数据库系统选项?

C# 存储在文件中而不需要服务器的最佳数据库系统选项?,c#,.net,database,C#,.net,Database,我正在用C#(.NETFrameworkV3.5)开发一个应用程序,我需要在数据库中存储一些表以及它们之间的关系 我的应用程序中应该包含哪些好的数据库系统?为什么? 重要提示:我不希望我的客户端安装服务器(如MySQL或SQL server),除非它是与.NET Framework v3.5一起安装的 我一直在考虑SQLite和Microsoft Access,因为它们都将数据库存储在文件中而不是服务器中,但我只是想知道是否还有其他选择。例如,出于测试目的,我使用Entity Framework

我正在用C#(.NETFrameworkV3.5)开发一个应用程序,我需要在数据库中存储一些表以及它们之间的关系

我的应用程序中应该包含哪些好的数据库系统?为什么?

重要提示:我不希望我的客户端安装服务器(如MySQL或SQL server),除非它是与.NET Framework v3.5一起安装的

我一直在考虑SQLite和Microsoft Access,因为它们都将数据库存储在文件中而不是服务器中,但我只是想知道是否还有其他选择。例如,出于测试目的,我使用Entity Framework对数据库进行建模,并将其存储在.mdf文件中,工作正常,但我不确定是否需要SQL Server在该.mdf文件中查询/修改/插入信息?

SQL Server CE(compact edition)不需要任何安装,您只需要在应用程序中部署适当的DLL。数据库存储在一个文件中,不需要服务器


SQLite和SQL Server CE都支持实体框架(用于SQLite)

我同意SQLite是一个不错的选择。它是一个功能强大、应用广泛的数据库(Firefox、Mac OS、Google Gears,随便你怎么说),只需一个小软件包。它是在公共域中,并且有一个包括ADO.NET提供程序在内的方便工具。我自己也在WinForms应用程序中使用过它。

您在.NET中为SQLite提供了什么?@Oscar,对不起,刚刚添加了链接。@Thomas SQLite是否支持实体框架,当使用该连接器进行模型优先时?@Oscar,您称之为“模型优先”是什么?你的意思是“代码优先”?@Thomas我的意思是创建模型并从model@Thomas我读到SQLite支持只针对代码优先。我想我会使用SQL Server CE 3.5,尽管有一些功能我不能在Entity Framework中使用(如Skip()、自动递增的标识字段等)。我想你可以在你的答案中指定SQLite只在EF代码中受支持,以防万一其他人发现这个答案很有用:)@Oscar,那不是真的。。。早在EF代码首次发布之前,我就将SQLite与实体框架结合使用了。我不知道它是否可以从模型中生成DB,但我确信您不必使用代码优先的方法。