2013-05-05 43 views
2

我已经为其数据库使用SQL Server的客户端编写了相当大的C#Winforms应用程序。这最初是为内部使用而设计和开发的。他们已经决定,他们希望将这个缩减版本授权给他们的客户,以及在内部使用完整版本。本地基于文件的SQL Server

尽管截取版本将存储的一些数据将通过调用web服务发送到我们的服务器,但大多数数据都要求本地存储。

我的大部分数据库经验都使用了SQL Server的安装。但是,理想情况下,应该将数据存储在本地基于文件的数据库中(而不必安装和配置数据库服务器)。他们的客户不太可能在技术上很头脑,他们只想要一个setup.exe来安装软件,而且它只是工作。

我的大部分.NET代码都使用Linq-to-Sql与数据库进行通信。

在这种情况下,本地数据库的最佳选择是什么?应该允许我仍然使用现有的Linq代码?

+1

http://stackoverflow.com/questions/250071/linq-with-sqlite-linqtosql – I4V 2013-05-05 14:49:56

回答

4

从我的观点,看法的-,你必须在这里至少有两个选项:

这两个数据库都不需要在目标系统上安装任何东西,只需在应用程序中部署一个(或多个)DLL。

数据库是基于文件的。

我有几个真正的应用程序运行VistaDB非常好。

这是我的优点和缺点:

临SQL CE:

精读SQL CE:

  • 没有意见
  • 几个DLL文件部署

临VistaDB的:

  • 的SQL Server兼容语法
  • 视图,存储过程等。
  • 100%受控,没有非托管代码
  • 一个单个DLL部署
  • 可以由多个用户(锁定)
  • Seems to support Linq to SQL(从来没有使用过自己,虽然)被用来

精读VistaDB的:

  • 费用的钱比如性能
  • 减从网络驱动器上运行时的Microsoft Access
  • 有点慢