using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; using System.Collections.Generic; namespace IRaCIS.Core.Infrastructure.Extention { public static class IQueryableExtensions { /// <summary> /// 获取第一条 为null提示 /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <returns></returns> /// <exception cref="QueryBusinessObjectNotExistException"></exception> public static async Task<TSource> FirstNotNullAsync<TSource>(this IQueryable<TSource> source) { var result =await source.FirstOrDefaultAsync(); if (result == null) { throw new QueryBusinessObjectNotExistException($"The query object does not exist in database, Please check the query parameters"); } else { return result; } } /// <summary> /// 查询字符串 为null 返回string.Empty /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <returns></returns> public static string FirstIsNullReturnEmpty(this IEnumerable<string> source) { var result = source.FirstOrDefault(); if (result == null || result == string.Empty) { return string.Empty; } else { return result; } } } }