当前位置: 首页 > news >正文

.net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现

EF Core

EF Core 是一个流行的对象关系映射(ORM)框架,它简化了与数据库的交互,提供了一个高效、灵活且易于使用的数据访问层。

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

EF Core 支持多个数据库引擎。

Gridify

Gridify 是一个现代化动态 LINQ 库,它以最简单的方式将您的字符串转换为 LINQ 查询,并且有出色的性能。它还提供了一种使用基于文本的数据应用过滤、排序和分页的简单方法,您还可以很方便的和 Entity framework 结合使用。

这里为什么使用Gridify而不是直接使用ling查询,我想一个是这个字符串过滤器很方便,无需手动解析请求字符串再去一个个拼接查询linq,再者使gridify可以很方便的实现分页查询

实战代码

模型

 public class User{public int Id { get; set; }public string Name { get; set; }}

数据库上下文

public class MyContext:DbContext
{protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlite("Data Source=data.db");//配置日志//optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Database.Connection.Name });}public virtual DbSet<User> Users { get; set; } = null!;
}

使用

static void Main(string[] args)
{using (var db = new MyContext()){var user = new[] { new User() { Id = 1, Name = "张三" }, new User() { Id = 2, Name = "李四" }, new User() { Id = 3, Name = "王五" }, new User() { Id = 4, Name = "王久" } };db.Users.AddRange(user);db.SaveChanges();//db.Users.RemoveRange(user);//db.SaveChanges();var users = db.Users.ToList();//LINQ//var result = users.Where(x => x.Name == "王五");//Gridifyvar result = users.AsQueryable().ApplyFiltering("Name=王五").ToList();foreach (var userss in result){Console.WriteLine(userss.Name);}var gq = new GridifyQuery(){//Filter = "Name=王五",Page = 1,PageSize = 20,OrderBy = "Id"};Paging<User> results = users.AsQueryable().Gridify(gq);}
}

参考文章:

2024-08-31 C# 为什么使用EF Core - 简书

Introduction | Gridify

.NET 现代化动态 LINQ 库 Gridify

温故而知新:后端通用查询方案的再思考 - 知乎


http://www.mrgr.cn/news/89797.html

相关文章:

  • 高斯溅射和GIS融合之路- 将splat文件切片成3dtiles
  • Linux——基础命令1
  • litemall,又一个小商场系统
  • 精灵图的知识
  • gpio功能调试
  • 如何高效启动并优化你的Google广告?
  • 2025.2.7 Python开发岗面试复盘
  • 一文吃透!DataStage 全面概述与核心知识要点大公开
  • 如何在Windows上使用Docker
  • xinference 安装(http导致错误解决)
  • hive的几种复杂数据类型
  • 深度学习01 神经网络
  • 使用bucardo实现postgresql数据库双主同步
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • 二分查找算法 (典型算法思想)—— OJ例题算法解析思路
  • MFC 学习笔记目录
  • 车型检测7种YOLOV8
  • 订单状态监控实战:基于 SQL 的状态机分析与异常检测
  • 制造业设备状态监控与生产优化实战:基于SQL的序列分析与状态机建模
  • Denavit-Hartenberg DH MDH坐标系
  • 深入解析 COUNT(DISTINCT) OVER(ORDER BY):原理、问题与高效替代方案
  • 芯片AI深度实战:让verilog不再是 AI 的小众语言
  • SQL进阶实战技巧:某芯片工厂设备任务排产调度分析 | 间隙分析技术应用
  • android 音视频系列引导
  • (●ˇ∀ˇ●)思维导图计划~~~
  • 【动态规划】杨表