WPF应用程序最佳本地数据库解决方案是什么?

12
目前哪种解决方案最适合用于WPF应用程序,在一个计算机上使用,多个用户登录并使用它们来在本地获取/保存信息?以下是我认为的选项:
  • MDF似乎是最好的选择,因为我假设您可以对其进行很好的锁定,以便即使用户可以访问.mdf文件,他们仍然不能访问其中的数据,除非通过应用程序本身。我假设.MDF文件必须与应用程序分开存在,因此将部署.exe和.mdf文件。哦,如果您使用.MDF文件,用户是否需要安装SQL Server才能使用它,如这个stackoverflow问题所示?

  • 我认为SDF可能不是推荐的选择,因为它有相当多的限制,并且主要用于移动存储。

  • 如果安全性不重要,例如小型单用户应用程序,用于本地保存数据,而他不会保护该文件,则XML可能是合适的,其他应用程序/网站可以轻松访问该文件。

  • SQLite可能是一种选择,但据我所知,用于此数据库的.NET API还不太稳定,对吗?

  • .mdb Access可能是一种选择,如果您需要用户也编辑/查看数据或使用Access生成报表。

  • 还有IsolatedStorage,但我认为它有严重的限制,例如无法从其他应用程序访问它,对吗?

  • 也许使用云服务现在可能是可行的和直截了当的,必须进行调查。

感谢任何反馈或想法。
5个回答

13

这不就是通过在 Visual Studio 中执行“添加项,本地数据库”来创建的“.ldf”文件吗? - Edward Tanguay

4
我会选择SQLite。您可以在此处获得ADO.NET兼容的驱动程序:

System.Data.SQLite


五个月前,LINQ-to-SQLite 似乎还不是现实,自那以后有改变吗? - Edward Tanguay
你如何保护数据,以便使用 Firefox 的 SQLite Manager 插件(https://addons.mozilla.org/en-US/firefox/addon/5817)的用户无法打开并读写它,是否有方法可以实现这一点? - Edward Tanguay
您可以为每个用户使用一个sqlite数据库文件。 - Nifle

2

我会推荐SQLite。它非常轻便易用,API也很好。你也可以使用DbLinq作为ORM。


1

SQL Server Compact Edition是我的选择,因为它具有以下优点:

  • 一个小型的运行时库,可以与您的应用程序一起分发
  • 兼容Linq to Sql(搜索“SqlMetal.exe”)
  • 与Visual Studio 2008集成设计体验

作为.NET应用程序的轻量级解决方案,它是一个不错的全能选手。

http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx


0

MDF似乎是最灵活的解决方案,但用户需要安装SQL Server Express才能使用它。

您计划如何执行CRUD过程?如果您想使用Linq to SQL,官方只支持SQL 2005、Sql 2008和Sql Compact,您会有一定的限制。

此外,应用程序是否需要与互联网断开连接、部分连接或完全连接?这可能会对您的决策产生一些影响。

在我看来,我会从SQL Server Compact版开始,如果那太受限制,就转向SQL Server Express。(.MDF)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接