前言
上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法(SQLiteHelper)。
七天.NET 8操作SQLite入门到实战详细教程
- 第一天 SQLite 简介
- 第二天 在 Windows 上配置 SQLite环境
- 第三天SQLite快速入门
- 第四天EasySQLite前后端项目框架搭建
EasySQLite项目源码地址
GitHub地址:https://github.com/YSGStudyHards/EasySQLite
SQLite-net介绍
简单、强大、跨平台的 SQLite 客户端和 .NET 的 ORM。
- GitHub开源地址:https://github.com/praeclarum/sqlite-net
SQLite-net提供了以下四个包:
Package | Description | Package Address |
---|---|---|
sqlite-net-pcl | .NET Standard 库 | https://www.nuget.org/packages/sqlite-net-pcl |
sqlite-net-sqlcipher | 支持加密 | https://www.nuget.org/packages/sqlite-net-sqlcipher |
sqlite-net-static | 使用平台提供的 sqlite3 的 P/Invokes 的特殊版本 | https://www.nuget.org/packages/sqlite-net-static |
sqlite-net-base | 使用 SQLitePCLRaw 捆绑包,以便您可以选择自己的提供程序 | https://www.nuget.org/packages/sqlite-net-base |
SQLite-net 设计目标
SQLite-net 被设计为一个快速便捷的数据库层。其设计遵循以下目标:
- 非常容易与现有项目集成,并在所有 .NET 平台上运行。
- 对 SQLite 的薄包装,快速高效。(这个库不应该成为查询性能的瓶颈。)
- 提供非常简单的方法服务器托管网来安全执行 CRUD 操作和查询(使用参数),以及以强类型方式检索这些查询结果。
- 在不强制更改类的情况下与数据模型一起工作。(包含一个小型的反射驱动 ORM 层。)
安装 sqlite-net-pcl Nuget包
搜索sqlite-net-pcl
,选择最新稳定版本进行安装:
SQLite同步和异步方法帮助类
SQLiteHelper
///
///SQLite同步方法帮助类
///作者:追逐时光者
///创建时间:2023年11月30日
///
///
publicclassSQLiteHelperwhereT:new()
{
privatereadonlystring_databasePath=Path.Combine(Environment.CurrentDirectory,"ClassManagement.db");
privatereadonlySQLiteConnection_connection;//SQLite连接对象
///
///构造函数
///
publicSQLiteHelper()
{
//创建SQLite连接对象并打开连接
_connection=newSQLiteConnection(_databasePath);
_connection.CreateTable();//如果表不存在,则创建该表[不会创建重复的表]
}
///
///数据插入
///
///要插入的数据项
///
publicintInsert(Titem)
{
return_connection.Insert(item);
}
///
///数据删除
///
///要删除的数据的主键ID
///
publicintDelete(intid)
{
return_connection.Delete(id);
}
///
///数据更新
///
///要更新的数据项
///
publicintUpdate(Titem)
{
return_connection.Update(item);
}
///
///根据条件查询记录
///
///查询条件
///
publicListQuery(Expression>predExpr)
{
return_connection.Table().Where(predExpr).ToList();
}
///
///查询所有数据
///
///
publicListQueryAll()
{
return_connection.Table().ToList();
}
///
///根据条件查询单条记录
///
///查询条件
///
publicTQuerySingle(Expression>predExpr)
{
return_connection.Table().Where(predExpr).FirstOrDefault();
}
}
SQLiteAsyncHelper
///
///SQLite异步方法帮助类
///作者:追逐时光者
///创建时间:2023年11月30日
///
///
publicclassSQLiteAsyncHelperwhereT:new()
{
privatereadonlystring_databasePath=Path.Combine(Environment.CurrentDirectory,"ClassManagement.db");
privatereadonlySQLiteAsyncConnection_connectionAsync;//SQLite连接对象
///
///构造函数
///
publicSQLiteAsyncHelper()
{
//创建SQLite连接对象并打开连接
_connectionAsync=newSQLiteAsyncConnection(_databasePath);
_connectionAsync.CreateTableAsync();//如果表不存在,则创建该表[不会创建重复的表]
}
///
///数据插入
///
///要插入的数据项
///
publicasyncTaskInsertAsync(Titem)
{
returnawait_connectionAsync.InsertAsync(item);
}
///
///数据删除
///
///要删除的数据的主键ID
///
publicasyncTaskDeleteAsync(intid)
{
returnawait_connectionAsync.DeleteAsync(id);
}
///
///数据更新
///
///要更新的数据项
///
publicasyncTaskUpdateAsync(Titem)
{
returnawait_connectionAsync.UpdateAsync(item);
}
///
///根据条件查询记录
///
///查询条件
///
publicasyncTask>QueryAsync(Expression>predExpr)
{
returnawait_connectionAsync.Table().Where(predExpr).ToListAsync();
}
///
///查询所有数据
///
///
publicasyncTask>QueryAllAsync()
{
returnawait_connectionAsync.Table().ToListAsync();
}
///
///服务器托管网根据条件查询单条记录
///
///查询条件
///
publicasyncTaskQuerySingleAsync(Expression>predExpr)
{
returnawait_connectionAsync.Table().Where(predExpr).FirstOrDefaultAsync();
}
}
DotNetGuide技术社区交流群
- DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。
- 在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
- 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。
欢迎加入DotNetGuide技术社区微信交流群
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net