.Net System.Linq.Dynamic.Core 搭配ORM框架的开发神器


前言

IQueryable的拓展方法,可以使用字符串的方式达到动态linq查询的目的

GitHub地址: https://github.com/zzzprojects/System.Linq.Dynamic.Core
新手入门文档:https://dynamic-linq.net/overview
在线示例文档:https://dynamic-linq.net/online-examples
官网地址:https://dynamic-linq.net/


提示:接下来演示使用方式和效果

一、添加引用

NuGet 添加System.Linq.Dynamic.Core

想要通过命令的方式 查看这里:(https://www.nuget.org/packages/System.Linq.Dynamic.Core/)
在这里插入图片描述

二、测试代码及效果

using System.Linq.Dynamic.Core;
using TestLinqDynamicCore;


Console.WriteLine("Hello, World!");

List<PeopleModel> peopleModels = new List<PeopleModel>();
for (int i = 0; i < 10; i++)
{
    peopleModels.Add(
        new PeopleModel()
        {
            Id = i,
            Name = "XXX" + i,
            Sex = (i % 2 > 0) ? "男" : "女"
        }
   );
}


var QYpeoples= peopleModels.AsQueryable();
#region 功能等价
var WhereValue = QYpeoples.Where("id>1");
//var WhereValue = QYpeoples.Where("id>@0", 1);
#endregion
foreach (var item in WhereValue)
{
    Console.Write(item.Id + "   ");
    Console.Write(item.Name + "   ");
    Console.Write(item.Sex + "   ");
    Console.WriteLine();
//2   XXX2 女
//3   XXX3 男
//4   XXX4 女
//5   XXX5 男
//6   XXX6 女
//7   XXX7 男
//8   XXX8 女
//9   XXX9 男
}

List<int> range = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var rangeResult = range.AsQueryable().Select("it * it");
foreach (var item in rangeResult)
{
    Console.WriteLine(item.ToString());
//1
//4
//9
//16
//25
//36
//49
//64
//81
//100
}
var WhereRideValue = QYpeoples.Select("id * id");
foreach (var item in WhereRideValue)
{
    Console.WriteLine(item.ToString());
//0
//1
//4
//9
//16
//25
//36
//49
//64
//81
}


var SelectNew= QYpeoples.Select(x => "{UserName=" + x.Id + ", MyFirstName=" + x.Sex + "}");
foreach (var item in SelectNew)
{
    Console.WriteLine(item.ToString());
    //{ UserName = 0, MyFirstName = 女}
    //{ UserName = 1, MyFirstName = 男}
    //{ UserName = 2, MyFirstName = 女}
    //{ UserName = 3, MyFirstName = 男}
    //{ UserName = 4, MyFirstName = 女}
    //{ UserName = 5, MyFirstName = 男}
    //{ UserName = 6, MyFirstName = 女}
    //{ UserName = 7, MyFirstName = 男}
    //{ UserName = 8, MyFirstName = 女}
    //{ UserName = 9, MyFirstName = 男}
}

var SelectName = QYpeoples.Select(x => x.Name);
foreach (var item in SelectName)
{
    Console.WriteLine(item.ToString());
//XXX0
//XXX1
//XXX2
//XXX3
//XXX4
//XXX5
//XXX6
//XXX7
//XXX8
//XXX9
}
Console.ReadLine();

总结

官网相关文档中有更多的使用示例和方法哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值