Linq to SQlite的使用
参考阅读:LINQ TO SQLite实践指南; 首先,下载所需程序: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中,如下图: 使用DataContext对象(Linq的用法)连接数据库时出现问题:原因是使用时为了省事,直接把连接字符串写进构造函数如:DataContext(@"data source=your_sqlite_db_path");,这样连接就会有问题,长时间无反应或是抛出异常,解决办法是显式创建SQliteConnection,如:DataContext(new SQLiteConnection(@"data source=your_sqlite_db_path"));我在程序中就是这么使用的。 然后就可以正常使用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 + "rn"; } 另外,可以用dotConnect for SQLite作为SQlite的ADO.NET Provider,它支持Linq to SQlite,如果用这个就没有这么麻烦了,不过它是商业软件,提供一个免费版可供使用,有关方法详见:Linq to SQLite 实战,介绍的过程很详细。 有什么不足之处,欢迎拍砖讨论,谢啦 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |