不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
Linq to SQlite简单示例(DbLinq版)
编辑:dnawo 日期:2019-02-03
一、准备文件:
■SQLite Administrator:https://sqliteadmin.orbmu2k.de/
■System.Data.SQLite:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki (下netFx35-binary-bundle-Win32这个版本)
■DbLinq: https://github.com/dblinq/dblinq2007 (本地下载)
说明:DbLinq已不更新,最后一个版本基于.NET Framework 3.5框架开发,经测试只有基于.NET Framework 3.5框架(x86平台)开发的项目才能使用本文方法。
二、Linq to SQlite简单示例
1.使用SQLite Administrator创建sqlite数据库

2.使用DbLinq创建数据上下文类
解压下载的DbLinq和SQLite,将System.Data.SQLite.dll复制到DbLinq文件夹下,在命令行中执行如下命令生成数据上下文类:
说明:database为数据上下文类名,namespace为项目命名空间,code为生成的类文件名。

3.Linq to SQlite使用示例
■项目添加引用SQLite的System.Data.SQLite.dll、 System.Data.SQLite.Linq.dll;
■项目添加引用DbLinq的DbLinq.dll、DbLinq.Sqlite.dll;
■项目添加引用.NET程序集System.Data.Linq;
将上一步生成的TestContext.cs包括到项目中即可使用Linq to SQlite:

三、常见问题
错误1:创建数据上下文类出错。DbMetal: 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。 生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
解答:System.Data.SQLite使用了netFx40版本,改为netFx35版本即可。

错误2:项目运行出错。System.IO.FileLoadException:“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。”
解答:项目框架的版本高于.NET Framework 3.5,改成3.5即可。
错误3:项目运行出错。System.IO.FileNotFoundException:“未能加载文件或程序集“System.Data.SQLite.dll”或它的某一个依赖项。找不到指定的模块。”
解答:System.Data.SQLite版本不是netFx35,改为netFx35版本即可。
错误4:项目运行出错。System.BadImageFormatException:“未能加载文件或程序集“System.Data.SQLite, Version=1.0.109.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确的程序。”
解答:项目运行平台不是x86,改为x86即可。
参考资料
[1].Linq to SQlite的使用:https://blog.csdn.net/ldl22847/article/details/6868365
■SQLite Administrator:https://sqliteadmin.orbmu2k.de/
■System.Data.SQLite:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki (下netFx35-binary-bundle-Win32这个版本)
■DbLinq: https://github.com/dblinq/dblinq2007 (本地下载)
说明:DbLinq已不更新,最后一个版本基于.NET Framework 3.5框架开发,经测试只有基于.NET Framework 3.5框架(x86平台)开发的项目才能使用本文方法。
二、Linq to SQlite简单示例
1.使用SQLite Administrator创建sqlite数据库

2.使用DbLinq创建数据上下文类
解压下载的DbLinq和SQLite,将System.Data.SQLite.dll复制到DbLinq文件夹下,在命令行中执行如下命令生成数据上下文类:
复制内容到剪贴板
程序代码

DbMetal.exe /database:TestContext /namespace=ConsoleApp1 /code=TestContext.cs /provider=Sqlite /conn="data source=D:\Tools\DbLinq\test.s3db"
说明:database为数据上下文类名,namespace为项目命名空间,code为生成的类文件名。

3.Linq to SQlite使用示例
■项目添加引用SQLite的System.Data.SQLite.dll、 System.Data.SQLite.Linq.dll;
■项目添加引用DbLinq的DbLinq.dll、DbLinq.Sqlite.dll;
■项目添加引用.NET程序集System.Data.Linq;
将上一步生成的TestContext.cs包括到项目中即可使用Linq to SQlite:
复制内容到剪贴板
程序代码

using System;
using System.Collections.Generic;
using System.Data.SQLite;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (TestContext db = new TestContext(new SQLiteConnection(@"data source=D:\Tools\DbLinq\test.s3db")))
{
//Insert
UserTb user1 = new UserTb() { Name = "Jack", Age = 30 };
db.UserTb.InsertOnSubmit(user1);
db.SubmitChanges();
//Update
UserTb user2 = db.UserTb.Where(item => item.ID == user1.ID).First();
user2.Name += "New";
db.SubmitChanges();
//Select
List<UserTb> users = db.UserTb.ToList();
foreach (var item in users)
{
Console.WriteLine("{0},{1}", item.ID, item.Name);
}
//Delete
db.UserTb.DeleteOnSubmit(user2);
db.SubmitChanges(); //允许多个操作一起提交
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Data.SQLite;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (TestContext db = new TestContext(new SQLiteConnection(@"data source=D:\Tools\DbLinq\test.s3db")))
{
//Insert
UserTb user1 = new UserTb() { Name = "Jack", Age = 30 };
db.UserTb.InsertOnSubmit(user1);
db.SubmitChanges();
//Update
UserTb user2 = db.UserTb.Where(item => item.ID == user1.ID).First();
user2.Name += "New";
db.SubmitChanges();
//Select
List<UserTb> users = db.UserTb.ToList();
foreach (var item in users)
{
Console.WriteLine("{0},{1}", item.ID, item.Name);
}
//Delete
db.UserTb.DeleteOnSubmit(user2);
db.SubmitChanges(); //允许多个操作一起提交
}
Console.ReadLine();
}
}
}

三、常见问题
错误1:创建数据上下文类出错。DbMetal: 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。 生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
解答:System.Data.SQLite使用了netFx40版本,改为netFx35版本即可。

错误2:项目运行出错。System.IO.FileLoadException:“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。”
解答:项目框架的版本高于.NET Framework 3.5,改成3.5即可。
错误3:项目运行出错。System.IO.FileNotFoundException:“未能加载文件或程序集“System.Data.SQLite.dll”或它的某一个依赖项。找不到指定的模块。”
解答:System.Data.SQLite版本不是netFx35,改为netFx35版本即可。
错误4:项目运行出错。System.BadImageFormatException:“未能加载文件或程序集“System.Data.SQLite, Version=1.0.109.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确的程序。”
解答:项目运行平台不是x86,改为x86即可。
参考资料
[1].Linq to SQlite的使用:https://blog.csdn.net/ldl22847/article/details/6868365






评论: 0 | 引用: 0 | 查看次数: 3190
发表评论
请登录后再发表评论!