使用SQLite进行LINQ查询(linqtosql)

59
我有一个小项目需要存储(我选择SQLite),并且使用 ADO DLL for .Net for Sqlite 取得了良好的结果。

安装后,我注意到它包含 SQLLinq.dll。在投入太多精力进行调查之前,因为我没有在网上看到任何好的示例,所以我想知道是否有人在 SQLite 和 LINQ 中取得了好的结果?

*如果linqtosql以相同的方式处理SQL数据库,请让我知道。当我看到这个Dll时,我感到很有兴趣,因为我以前从未使用过Linqtosql,我认为这将是一个很好的机会去尝试一下。

9个回答

50

我最近发现了DBLinq,它支持SQLite以及其他数据库:


这是唯一一个我发现看起来不错的LINQ<->SQLite。 - jcollum
这是我找到的唯一一个支持除SQLServer之外的数据库的LINQ to SQL提供程序。 - Ricardo Amores
1
我改变了答案。回到过去,这个答案并不存在,但现在显然是最好的答案。 - Patrick Desjardins
1
检查Mono项目。如果我没记错的话,他们有一个用C#编写的LINQ sqlite适配器。 无论如何,尝试使用这个适配器,即使它已经过时了,也许它仍然可以工作,而且你毕竟有源代码 :) - Ricardo Amores

10

根据我的经验,微软SQL Compact Framework真的不好用。它非常慢,查询分析器也很差劲。我不得不要求我的团队重写Windows Mobile组件的所有基础代码,以摆脱SQL CE糟糕的性能。


3
我百分之百同意——CE是一坨垃圾...所以,我正在寻找替代品(SqlLite)——别让我开始说它有多糟糕...在任何高负载多线程环境下都不要使用它。 - TravisWhidden

8
LINQ to SQL 只支持 SQL Server/Compact,但有可能 SQLite 的开发者已经编写了自己的 LINQ 提供程序,给出程序集名称后可以使用 LINQ 查询语法。但您将无法获得 LINQ to SQL 特定功能,例如 DataContext/designer/SQL Metal/Column 属性/EntitySet/EntityRef 等。请注意,HTML 标记将被保留。

好的,谢谢提供信息。如果今天结束前没有更好的答案,我会把你标记为答案!+1 - Patrick Desjardins

4

3

虽然这不是对你问题的直接回答,但是作为另一种选择,你可以使用SQL Compact:

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

它有很好的LINQ-to-SQL支持,并且(尽管名字中含有“Compact”)非常适合需要小存储空间的桌面应用程序。


1
+1 我会继续使用Sqlite,但你教会了我Compact的新东西! - Patrick Desjardins
其中有一个新版本(2008)http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx - Jader Dias
谢谢你分享这个 - 我以前从未遇到过。 - Kevin Shea

2

1

1

0

由于DBLinq不再维护,我一直在搜索并找到了这个答案,它有点含糊地指向了使用Linq to Sql、Entity Framework和SQLite的解决方案。他链接的博客文章有点过时,但经过一些调整,我在GitHub上得到了一个可运行的示例

它应该可以在Visual Studio 2013中直接运行。它展示了如何添加记录(包括另一个表中的相关记录)、修改和删除。Artist和Album类代表了它们各自表中的记录(我相信这是Entity Framework的一部分)。请查看自述文件以了解一些需要注意的问题。


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