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

.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 == "王五");
        //Gridify
        var 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.kler.cn/a/535893.html

相关文章:

  • Fedora 的 2025 年展望:AI 集成与 HDR 支持打造强大 Linux 桌面体验
  • 19C RAC在vmware虚拟机环境下的安装
  • 109,【1】攻防世界 web 题目名称-文件包含
  • C语言按位取反【~】详解,含原码反码补码的0基础讲解【原码反码补码严格意义上来说属于计算机组成原理的范畴,不过这也是学好编程初级阶段的必修课】
  • 正则表达式详细介绍
  • CSS的媒体查询语法
  • Python“鉴黄”小程序,自动识别检测物体的颜色
  • 【数据结构】(5) ArrayList 顺序表
  • 确保数据一致性:RabbitMQ 消息传递中的丢失与重复问题详解
  • 如何查看:Buildroot所使用Linux的版本号、gcc交叉编译工具所使用的Linux的版本号、开发板上运行的Linux系统的版本号
  • 使用外骨骼灵活远程控制协作机器人案例
  • 如何利用Java爬虫获取商品销量详情实战指南
  • Spring Boot 自动装配机制深度解析
  • VUE之组件通信(二)
  • Git 分支管理策略与实践
  • 怎麼在Chrome中設置代理伺服器?
  • MySQL 进阶专题:索引(索引原理/操作/优缺点/B+树)
  • 责任链模式(Chain Responsibility)
  • 深度学习里面的而优化函数 Adam,SGD,动量法,AdaGrad 等 | PyTorch 深度学习实战
  • HbuilderX中,实现Gzip的两种方法
  • 【数据结构-Trie树】力扣720. 词典中最长的单词
  • android 打包AAR-引入资源layout-安卓封包
  • 网络计算机的五个组成部分
  • 2.5-数据结构:AVL树
  • DeepSeek 开源模型全解析(2024.1.1–2025.2.6)
  • 2025年2月6日(anaconda cuda 学习 基本命令)