懒得勤快 1 год назад
Родитель
Сommit
052f90f76a

+ 1 - 1
Directory.Build.props

@@ -1,6 +1,6 @@
 <Project>
  <PropertyGroup>
-   <Version>2024.4.2</Version>
+   <Version>2024.4.3</Version>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
 </Project>

+ 1 - 1
Masuit.Tools.AspNetCore/Masuit.Tools.AspNetCore.csproj

@@ -14,7 +14,6 @@
         <PackageReleaseNotes>如有问题请联系作者QQ:3444764617,或者到项目的github反馈问题,
 详细的API文档在github上:https://github.com/ldqk/Masuit.Tools</PackageReleaseNotes>
         <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
-        <PackageLicenseUrl>https://github.com/ldqk/Masuit.Tools/blob/master/LICENSE</PackageLicenseUrl>
         <Product>Masuit.Tools.AspNetCore</Product>
         <PackageId>Masuit.Tools.AspNetCore</PackageId>
         <LangVersion>latest</LangVersion>
@@ -33,6 +32,7 @@
         <Title>Masuit.Tools</Title>
         <PackageReadmeFile>README.md</PackageReadmeFile>
         <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
+        <PackageLicenseExpression>MIT</PackageLicenseExpression>
     </PropertyGroup>
 
     <ItemGroup>

+ 1 - 1
Masuit.Tools.Core/Masuit.Tools.Core.csproj

@@ -12,7 +12,6 @@ github:https://github.com/ldqk/Masuit.Tools
         <PackageReleaseNotes>如有问题请联系作者QQ:3444764617,或者到项目的github反馈问题,
 详细的API文档在github上:https://github.com/ldqk/Masuit.Tools</PackageReleaseNotes>
         <PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
-        <PackageLicenseUrl>https://github.com/ldqk/Masuit.Tools/blob/master/LICENSE</PackageLicenseUrl>
         <Product>Masuit.Tools.Core</Product>
         <PackageId>Masuit.Tools.Core</PackageId>
         <ImplicitUsings>enable</ImplicitUsings>
@@ -32,6 +31,7 @@ github:https://github.com/ldqk/Masuit.Tools
         <Title>Masuit.Tools</Title>
         <PackageReadmeFile>README.md</PackageReadmeFile>
         <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
+        <PackageLicenseExpression>MIT</PackageLicenseExpression>
     </PropertyGroup>
 
     <ItemGroup>

+ 126 - 74
Masuit.Tools.Core/Models/IQueryableExt.cs

@@ -1,80 +1,132 @@
-using Microsoft.EntityFrameworkCore;
+using Masuit.Tools.Core;
+using Microsoft.EntityFrameworkCore;
 
 namespace Masuit.Tools.Models;
 
 public static partial class IQueryableExt
 {
-    /// <summary>
-    /// 生成分页集合
-    /// </summary>
-    /// <typeparam name="T"></typeparam>
-    /// <param name="query"></param>
-    /// <param name="page">当前页</param>
-    /// <param name="size">页大小</param>
-    /// <returns></returns>
-    public static async Task<PagedList<T>> ToPagedListAsync<T>(this IQueryable<T> query, int page, int size)
-    {
-        var totalCount = await query.CountAsync();
-        if (1L * page * size > totalCount)
-        {
-            page = (int)Math.Ceiling(totalCount / (size * 1.0));
-        }
-
-        if (page <= 0)
-        {
-            page = 1;
-        }
-
-        var list = await query.Skip(size * (page - 1)).Take(size).ToListAsync();
-        return new PagedList<T>(list, page, size, totalCount);
-    }
-    /// <summary>
-    /// 生成分页集合
-    /// </summary>
-    /// <typeparam name="T"></typeparam>
-    /// <param name="query"></param>
-    /// <param name="page">当前页</param>
-    /// <param name="size">页大小</param>
-    /// <returns></returns>
-    public static PagedList<T> ToPagedList<T>(this IQueryable<T> query, int page, int size)
-    {
-        var totalCount = query.Count();
-        if (1L * page * size > totalCount)
-        {
-            page = (int)Math.Ceiling(totalCount / (size * 1.0));
-        }
-
-        if (page <= 0)
-        {
-            page = 1;
-        }
-
-        var list = query.Skip(size * (page - 1)).Take(size).ToList();
-        return new PagedList<T>(list, page, size, totalCount);
-    }
-
-    /// <summary>
-    /// 生成分页集合
-    /// </summary>
-    /// <typeparam name="T"></typeparam>
-    /// <param name="query"></param>
-    /// <param name="page">当前页</param>
-    /// <param name="size">页大小</param>
-    /// <returns></returns>
-    public static PagedList<T> ToPagedList<T>(this IEnumerable<T> query, int page, int size)
-    {
-        var totalCount = query.Count();
-        if (1L * page * size > totalCount)
-        {
-            page = (int)Math.Ceiling(totalCount / (size * 1.0));
-        }
-
-        if (page <= 0)
-        {
-            page = 1;
-        }
-
-        var list = query.Skip(size * (page - 1)).Take(size).ToList();
-        return new PagedList<T>(list, page, size, totalCount);
-    }
+	/// <summary>
+	/// 生成分页集合
+	/// </summary>
+	/// <typeparam name="T"></typeparam>
+	/// <param name="query"></param>
+	/// <param name="page">当前页</param>
+	/// <param name="size">页大小</param>
+	/// <returns></returns>
+	public static async Task<PagedList<T>> ToPagedListAsync<T>(this IQueryable<T> query, int page, int size)
+	{
+		var totalCount = await query.CountAsync();
+		if (1L * page * size > totalCount)
+		{
+			page = (int)Math.Ceiling(totalCount / (size * 1.0));
+		}
+
+		if (page <= 0)
+		{
+			page = 1;
+		}
+
+		var list = await query.Skip(size * (page - 1)).Take(size).ToListAsync();
+		return new PagedList<T>(list, page, size, totalCount);
+	}
+
+	/// <summary>
+	/// 生成分页集合
+	/// </summary>
+	/// <typeparam name="T"></typeparam>
+	/// <param name="query"></param>
+	/// <param name="page">当前页</param>
+	/// <param name="size">页大小</param>
+	/// <returns></returns>
+	public static async Task<PagedList<T>> ToPagedListNoLockAsync<T>(this IQueryable<T> query, int page, int size)
+	{
+		var totalCount = await query.CountAsync();
+		if (1L * page * size > totalCount)
+		{
+			page = (int)Math.Ceiling(totalCount / (size * 1.0));
+		}
+
+		if (page <= 0)
+		{
+			page = 1;
+		}
+
+		var list = await query.Skip(size * (page - 1)).Take(size).ToListWithNoLockAsync();
+		return new PagedList<T>(list, page, size, totalCount);
+	}
+
+	/// <summary>
+	/// 生成分页集合
+	/// </summary>
+	/// <typeparam name="T"></typeparam>
+	/// <param name="query"></param>
+	/// <param name="page">当前页</param>
+	/// <param name="size">页大小</param>
+	/// <returns></returns>
+	public static PagedList<T> ToPagedList<T>(this IQueryable<T> query, int page, int size)
+	{
+		var totalCount = query.Count();
+		if (1L * page * size > totalCount)
+		{
+			page = (int)Math.Ceiling(totalCount / (size * 1.0));
+		}
+
+		if (page <= 0)
+		{
+			page = 1;
+		}
+
+		var list = query.Skip(size * (page - 1)).Take(size).ToList();
+		return new PagedList<T>(list, page, size, totalCount);
+	}
+
+	/// <summary>
+	/// 生成分页集合
+	/// </summary>
+	/// <typeparam name="T"></typeparam>
+	/// <param name="query"></param>
+	/// <param name="page">当前页</param>
+	/// <param name="size">页大小</param>
+	/// <returns></returns>
+	public static PagedList<T> ToPagedListNoLock<T>(this IQueryable<T> query, int page, int size)
+	{
+		var totalCount = query.Count();
+		if (1L * page * size > totalCount)
+		{
+			page = (int)Math.Ceiling(totalCount / (size * 1.0));
+		}
+
+		if (page <= 0)
+		{
+			page = 1;
+		}
+
+		var list = query.Skip(size * (page - 1)).Take(size).ToListWithNoLock();
+		return new PagedList<T>(list, page, size, totalCount);
+	}
+
+	/// <summary>
+	/// 生成分页集合
+	/// </summary>
+	/// <typeparam name="T"></typeparam>
+	/// <param name="query"></param>
+	/// <param name="page">当前页</param>
+	/// <param name="size">页大小</param>
+	/// <returns></returns>
+	public static PagedList<T> ToPagedList<T>(this IEnumerable<T> query, int page, int size)
+	{
+		var totalCount = query.Count();
+		if (1L * page * size > totalCount)
+		{
+			page = (int)Math.Ceiling(totalCount / (size * 1.0));
+		}
+
+		if (page <= 0)
+		{
+			page = 1;
+		}
+
+		var list = query.Skip(size * (page - 1)).Take(size).ToList();
+		return new PagedList<T>(list, page, size, totalCount);
+	}
 }