SQL Compact 不适用于 Linq to Sql,我应该使用啥?

Posted

技术标签:

【中文标题】SQL Compact 不适用于 Linq to Sql,我应该使用啥?【英文标题】:SQL Compact does not work with Linq to Sql, what should I use?SQL Compact 不适用于 Linq to Sql,我应该使用什么? 【发布时间】:2011-01-26 23:25:55 【问题描述】:

我正在开发一个使用简单数据库的简单应用程序。

到目前为止,我想使用 SQL Server Compact。不过,使用 LINQ 很痛苦。

我应该使用什么?我想分发我的应用程序,而无需在用户的计算机上安装任何其他东西。

有什么建议吗?

【问题讨论】:

“所以我想知道,我应该使用什么?” - 谁知道?你的问题没有你的要求.... ^^ 什么鬼? “我想分发我的应用程序而不需要在用户的计算机上安装任何其他东西。”不是必需的吗?...我希望我的应用程序带有自己的数据库,例如不需要安装 SQL Server 2008... 【参考方案1】:

有很多选择:

NHibernate - http://nhforge.org/Default.aspx

光速 - http://www.mindscapehq.com/products/lightspeed

EntityFramework - http://msdn.microsoft.com/en-us/library/bb399572.aspx

“我想分发我的应用程序,而无需在用户计算机上安装任何其他东西。”

以上都不会要求您在用户计算机上安装任何东西,但前两个将要求您将程序集与您的应用程序一起分发,与将您自己的程序集与应用程序一起分发没有什么不同。

【讨论】:

【参考方案2】:

实体框架怎么样?

与 SQL Compact 一起使用的注意事项:http://technet.microsoft.com/en-us/library/cc835494.aspx

【讨论】:

【参考方案3】:

您可能还需要考虑几个替代包,例如 DbLinq(它似乎是 LINQ to SQL 的泛化)和/或 System.Data.SQLite(将 SQLite 引擎集成到其程序集中并由DbLinq)。

【讨论】:

【参考方案4】:

为什么不放弃 Linq 并保留 Sql CE? Sql CE 是一个优秀的数据库引擎——快速、轻量和可靠。 ADO.NET 与 Paint 和 Notepad 一样难以使用。

仍然可以在不使用 Linq 的情况下编写应用程序。

【讨论】:

以上是关于SQL Compact 不适用于 Linq to Sql,我应该使用啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL Server Compact Edition 的 Linq-to-SQL

如何在没有 Linq to SQL 的情况下在 Windows Phone 中使用 SQL Server Compact

为 linq to sql 更新 SQL Compact db 和 dbml 时出现 Method not Found 错误

使用 SQLMetal 从 SQL Compact 3.5 数据库生成 Linq 类

LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException

SQL Server 2008 到 SQL Server Compact Edition?