.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/)
.Net System.Linq.Dynamic.Core 搭配ORM框架的开发神器_第1张图片

二、测试代码及效果

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();

总结

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

你可能感兴趣的:(C#,语法糖,linq,.net,IQueryable,ORMLinq,Linq.Dynamic)