数据库是软件不可或缺的组成部分,传统数据库越来越大,对于中小型应用有点浪费;SQLite,是一款轻型的数据库,支持ACID事务,无需安装或配置,源代码完全公开,速度也非常快,非常适合中小型应用;Linq to sql是微软出的,生成和管理关系型数据库的非常易用的架构;把Linq用于sqlite数据库将会给sqlite数据库的编程带来很大方便。
参考阅读:LINQ TO SQLite实践指南;
.NET Framework 4.0 安装SQLite Provider碰到的一些问题
首先,下载所需程序:System.Data.SQLite和DbLinq2007,其中前一个是sqlite的ADO.Net Provider和LINQ Provider,DbLinq2007是Linq to sqlite产生数据上下文的软件。
创建sqlite的数据库,添加表等,sqlite有很多优秀的GUI管理软件,这里我使用的是sqlite2009 Pro;软件界面如下:
这里创建两个表,Application和User表,每个表只有两个字段,用于显示Linq to sqlite的用法。这个数据库位于项目文件夹的debug文件夹。用于程序运行连接。
安装System.Data.sqlite;解压DbLinq2007,我把它放到D盘的DbLinq文件夹下;到System.Data.sqlite安装文件夹下,拷System.Data.sqlite.dll文件到DbLinq2007的文件夹下,运行时需要用到它;
然后就是产生DataContext了;在控制台下运行命令:DbMetal.exe /database:Data /namespace=LinqTosqlite /code=Test.cs /provider=sqlite /conn="data source=D:\Users.db3"
红色标记的分别是:DataContext类名,命名空间名,文件名,数据库路径。
然后建立项目,添加已有文件:刚才产生的文件,添加引用(DbLinq.dll、DbLinq.Sqlite.dll:位于DbLinq2007中,System.Data.SQLite.dll、 System.Data.SQLite.Linq.dll:位于System.Data.SQLite安装文件夹下,System.Data.Linq);System.Data.Linq位于.net中,如下图:
然后就可以正常使用Linq to SQlite了。
var query = from u in tc.User where u.ID == textBox2.Text select u; foreach (User u in query) { textBox1.Text += "用户名:" + u.ID + " " + "密码:" + u.Password + "\r\n"; }
另外,可以用dotConnect for sqlite作为sqlite的ADO.NET Provider,它支持Linq to sqlite,如果用这个就没有这么麻烦了,不过它是商业软件,提供一个免费版可供使用,有关方法详见:Linq to SQLite 实战,介绍的过程很详细。
原文链接:https://www.f2er.com/sqlite/201254.html