文章插图
首先我们先举实例讲解一下 A方案 的使用方法
//首选实例化一个 Category 实例var category = Category.Create;//查询var category1 = category.Find(a => a.CategoryId == 2);var category2 = category.Where(a => a.CategoryId == 2).ToEntity();//上边两种方式是一样的 都是提取 CategoryId 等于 2 的一条数据//列表var category3 = category.Where(a => a.CategoryId == 3).ToList();var category4 = category.ToList(a => a.CategoryId == 3);//上边两种方式是一样的 都是提取 CategoryId 等于 3 的列表数据//删除//当前语句是删除 CateogryId 等于 4 的这条记录var delete5 = category.Where(a => a.CategoryId == 4).Delete();//当前语句是删除查从库中查出来的一条数据给删除掉var delete6 = category1.Delete();//插入new Category{Name="a", ParentId=0}.Insert();//更新//当前语句是更新字段 为 Name ParentId 的字段值 条件是 CategoryId 等于 5 的记录var update5 = category.Where(a => a.CategoryId == 5).Update(a => a.Name == "aaa" && a.ParentId == 10);//当前语句是更新 字段 Name ParentId的值 数据是上边查询出来的一条记录category1.Name = "bbbb";category1.ParentId = 3;var update6 = category.Update();//联表 下边用法就是 通过 左关联 两张表 on 条件是 第一张表的 ParentId 与第二张表的 CategoryId 相同 然后字段显示为 Name,CategoryId,ParentName 的列表var join1 = category.QueryableX.Join<Category, object[]>((a, b) => new object[] { JoinType.Left, a.ParentId == b.CategoryId }).Select((a, b) => new{a.Name,a.CategoryId,ParentName = b.Name}).ToList();//更多表关联 有两种方法 第一种是 两张表关联的结果和第三张表关联,再关联的结果与第四经表关联 依次类推//第二种方法就是 假设一共有5张表关联那么直接实例化 DataHelperX时直接关联5张表,建议用第一种方法 。

文章插图

文章插图
接着我们讲 B 方案用法
//创建一个带数据库的 IQueryableX 对象,下边所有的操作都是基于当前对象来操作 。var data = https://www.huyubaike.com/biancheng/new DataHelperX(Conn);//查询下边三种写法 运行后 结果是一样的var userModel1 = data.Where(a => a.Account =="jacky" && a.Password == "admin123").ToEntity();var userModel2 = data.Where(a => a.Account == "jacky").Where(a => a.Password == "admin123").ToEntity();var userModel3 = data.First(a => a.Account == "jacky" && a.Password == "admin123");//列表var userList1 = data.Where(a => a.Sex == 1 || a.Account == "jacky").ToList();//关联查询var userList2 = data.Where(a => a.Sex == 1).Join<UserModel, object[]>((a, b) => new object[] { a.Account == b.Password }).Select((a, b) => new{a.Account,a.Password,ParentName = b.Account}).ToList();//插入var userModel4 = new UserModel { Account = "jacky", Password = "admin" };var insert1 = data.Insert(userModel4);//如果想返回自增长ID则后边输入接收参数即可如下var insert2 = data.Insert(userModel4, out var ID);//批量插入var insert3 = data.Inserts(new List<UserModel> { userModel4,userModel4 });//更新var update1 = data.Where(a => a.Id == 1).Update(a => a.Password == "adminadmin");//删除var delete1 = data.Where(a => a.Id == 1).Delete();

文章插图

文章插图
下边我们说一下 内部函数用法,函数扩展了基本上SQL中用到的函数,以及C#语言中的字符串处理函数的大部分,内部函数扩展方法如下:
经验总结扩展阅读
- flutter系列之:永远不用担心组件溢出的Wrap
- 荣耀x20评测_荣耀x20评测表现
- 抛砖系列之redis监控命令
- .NET性能系列文章一:.NET7的性能改进
- dubbo的一系列配置与搭建
- 记一次 .NET 某娱乐聊天流平台 CPU 爆高分析
- vivox60充电时间_vivox60充电快吗
- MassTransit | .NET 分布式应用框架
- 使用 Windows Core Audio APs 进行 Loopback Recording 并生成 WAV 文件
- 基于PL022 SPI 控制器 海思3516系列芯片SPI速率慢问题深入分析与优化