欢迎光临

木子屋

标题: Linq to SQlite简单示例(linq2db版)

作者: dnawo

日期: 2020-04-07 04:19 PM

分类: 操作系统

内容: 一、在NuGet安装linq2db.SQLite
二、使用T4模板生成Linq to SQLite类
将LinqToDB.Templates\CopyMe.SQLite.tt.txt复制一份到Models\CopyMe.SQLite.tt.txt，找到如下代码：
复制内容到剪贴板 程序代码NamespaceName = "DataModels";
LoadSQLiteMetadata(@"C:\Data", "MyDatabase.sqlite");
修改为：
复制内容到剪贴板 程序代码NamespaceName = "ConsoleApp1";
LoadSQLiteMetadata(@"E:\Demo\ConsoleApp1", "test.sqlite");
将Models\CopyMe.SQLite.tt.txt重命名为MyDatabase.tt，自动生成Linq to SQLite类文件MyDatabase1.generated.cs。
三、Linq to SQlite简单示例
在App.config添加数据库连接字符串：
复制内容到剪贴板 程序代码<connectionStrings>
<add name="MyDatabase" connectionString="Data Source=E:\Demo\ConsoleApp1\test.sqlite" providerName="SQLite" />
</connectionStrings>
好了，现在可以连接操作SQLite了：
复制内容到剪贴板 程序代码using LinqToDB;
using System;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (var db = new TestDB())
{
//Insert
db.Insert(new UserTB() { Name = "张三", Age = 20 });
var id = db.InsertWithInt32Identity(new UserTB() { Name = "李四", Age = 30 });
//Update
var user1 = db.UserTbs.FirstOrDefault();
user1.Name += "new";
db.Update(user1);
//Delete
var user2 = db.UserTbs.OrderByDescending(item => item.Id).FirstOrDefault(); //不支持方法LastOrDefault
db.Delete(user2);
//db.UserTbs.Where(item => item.Id == id).Delete();
//Select
var users = db.UserTbs.ToList();
foreach (var item in users)
{
Console.WriteLine("{0},{1},{2}", item.Id, item.Name, item.Age);
}
}
Console.ReadLine();
}
}
}
说明：linq2db.SQLite 2.0.0+只能在.NET Framework 4.5框架下运行，其他低版本(v1.10.0-)可运行于.NET Framework 4.0框架中。
相关资料
[1].linq2db官网：https://github.com/linq2db/linq2db
[2].C#中利用Nuget包使用SQLite数据库：https://www.cnblogs.com/lxzhangying/p/3227110.html

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

标题: Linq to SQlite简单示例(linq2db版)

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.594 ms

返回