SQL Server Compact 与 LINQ to SQL

SQL Server Compact 是与 Visual Studio 一起安装的默认数据库。 有关详细信息,请参阅使用 SQL Server Compact (Visual Studio)

本主题概括了用法、配置、功能集和 LINQ to SQL 支持范围方面的主要差异。

SQL Server Compact 相对于 LINQ to SQL 的特性

默认情况下,所有 Visual Studio 版本均安装 SQL Server Compact,因此在开发计算机上它可以与 LINQ to SQL 一起使用。 但是,使用 SQL Server Compact 和 LINQ to SQL 的应用程序的部署方式与 SQL Server 应用程序不同。 SQL Server Compact 不是 .NET Framework 的一部分,因此必须与应用程序一起打包或单独从 Microsoft 网站下载。

请注意下列特性:

  • SQL Server Compact 打包为可直接对数据库文件(扩展名为 .sdf)使用的 DLL。

  • SQL Server Compact 与客户端应用程序在同一进程中运行。 因此,与 SQL Server Compact 通信的效率要大大高于与 SQL Server 通信的效率。 另一方面,SQL Server Compact 确实需要托管代码和非托管代码之间的互操作性,而这也会带来开销。

  • SQL Server Compact DLL 很小。 这一特征减小了应用程序的总大小。

  • LINQ to SQL 运行时和 SQLMetal 命令行工具均支持 SQL Server Compact。

  • 对象关系设计器不支持 SQL Server Compact。

功能集

SQL Server Compact 的功能集与 SQL Server 的功能集相比要简单得多,具体体现在可影响 LINQ to SQL 应用程序的以下方面:

  • SQL Server Compact 不支持存储过程或视图。

  • SQL Server Compact 仅支持部分数据类型和 SQL 函数。

  • SQL Server Compact 仅支持部分 SQL 构造。

  • SQL Server Compact 仅提供具有最基本功能的优化器。 有些查询可能会超时。

  • SQL Server Compact 不支持部分信任。

另请参阅