赞
踩
上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法(SQLiteHelper)。
GitHub地址:GitHub - YSGStudyHards/EasySQLite: 七天.NET 8操作SQLite入门到实战详细教程
简单、强大、跨平台的 SQLite 客户端和 .NET 的 ORM。
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-pcl
,选择最新稳定版本进行安装:
- /// <summary>
- /// SQLite同步方法帮助类
- /// 作者:追逐时光者
- /// 创建时间:2023年11月30日
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public class SQLiteHelper<T> where T : new()
- {
- private readonly string _databasePath = Path.Combine(Environment.CurrentDirectory, "ClassManagement.db");
- private readonly SQLiteConnection _connection; // SQLite连接对象
-
- /// <summary>
- /// 构造函数
- /// </summary>
- public SQLiteHelper()
- {
- // 创建SQLite连接对象并打开连接
- _connection = new SQLiteConnection(_databasePath);
- _connection.CreateTable<T>(); // 如果表不存在,则创建该表[不会创建重复的表]
- }
-
- /// <summary>
- /// 数据插入
- /// </summary>
- /// <param name="item">要插入的数据项</param>
- /// <returns></returns>
- public int Insert(T item)
- {
- return _connection.Insert(item);
- }
-
- /// <summary>
- /// 数据删除
- /// </summary>
- /// <param name="id">要删除的数据的主键ID</param>
- /// <returns></returns>
- public int Delete(int id)
- {
- return _connection.Delete<T>(id);
- }
-
- /// <summary>
- /// 数据更新
- /// </summary>
- /// <param name="item">要更新的数据项</param>
- /// <returns></returns>
- public int Update(T item)
- {
- return _connection.Update(item);
- }
-
- /// <summary>
- /// 根据条件查询记录
- /// </summary>
- /// <param name="predExpr">查询条件</param>
- /// <returns></returns>
- public List<T> Query(Expression<Func<T, bool>> predExpr)
- {
- return _connection.Table<T>().Where(predExpr).ToList();
- }
-
- /// <summary>
- /// 查询所有数据
- /// </summary>
- /// <returns></returns>
- public List<T> QueryAll()
- {
- return _connection.Table<T>().ToList();
- }
-
- /// <summary>
- /// 根据条件查询单条记录
- /// </summary>
- /// <param name="predExpr">查询条件</param>
- /// <returns></returns>
- public T QuerySingle(Expression<Func<T, bool>> predExpr)
- {
- return _connection.Table<T>().Where(predExpr).FirstOrDefault();
- }
- }
- /// <summary>
- /// SQLite异步方法帮助类
- /// 作者:追逐时光者
- /// 创建时间:2023年11月30日
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public class SQLiteAsyncHelper<T> where T : new()
- {
- private readonly string _databasePath = Path.Combine(Environment.CurrentDirectory, "ClassManagement.db");
- private readonly SQLiteAsyncConnection _connectionAsync; // SQLite连接对象
-
- /// <summary>
- /// 构造函数
- /// </summary>
- public SQLiteAsyncHelper()
- {
- // 创建SQLite连接对象并打开连接
- _connectionAsync = new SQLiteAsyncConnection(_databasePath);
- _connectionAsync.CreateTableAsync<T>(); // 如果表不存在,则创建该表[不会创建重复的表]
- }
-
- /// <summary>
- /// 数据插入
- /// </summary>
- /// <param name="item">要插入的数据项</param>
- /// <returns></returns>
- public async Task<int> InsertAsync(T item)
- {
- return await _connectionAsync.InsertAsync(item);
- }
-
- /// <summary>
- /// 数据删除
- /// </summary>
- /// <param name="id">要删除的数据的主键ID</param>
- /// <returns></returns>
- public async Task<int> DeleteAsync(int id)
- {
- return await _connectionAsync.DeleteAsync<T>(id);
- }
-
- /// <summary>
- /// 数据更新
- /// </summary>
- /// <param name="item">要更新的数据项</param>
- /// <returns></returns>
- public async Task<int> UpdateAsync(T item)
- {
- return await _connectionAsync.UpdateAsync(item);
- }
-
- /// <summary>
- /// 根据条件查询记录
- /// </summary>
- /// <param name="predExpr">查询条件</param>
- /// <returns></returns>
- public async Task<List<T>> QueryAsync(Expression<Func<T, bool>> predExpr)
- {
- return await _connectionAsync.Table<T>().Where(predExpr).ToListAsync();
- }
-
- /// <summary>
- /// 查询所有数据
- /// </summary>
- /// <returns></returns>
- public async Task<List<T>> QueryAllAsync()
- {
- return await _connectionAsync.Table<T>().ToListAsync();
- }
-
- /// <summary>
- /// 根据条件查询单条记录
- /// </summary>
- /// <param name="predExpr">查询条件</param>
- /// <returns></returns>
- public async Task<T> QuerySingleAsync(Expression<Func<T, bool>> predExpr)
- {
- return await _connectionAsync.Table<T>().Where(predExpr).FirstOrDefaultAsync();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。