75 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
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 {typeof(TSource).Name} 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;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 查询字符串 为null 返回指定字符
 | 
						|
        /// </summary>
 | 
						|
        /// <typeparam name="TSource"></typeparam>
 | 
						|
        /// <param name="source"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static string FirstIsNullReturnValue(this IEnumerable<string> source,string value)
 | 
						|
        {
 | 
						|
            var result = source.FirstOrDefault();
 | 
						|
 | 
						|
            if (result == null || result == string.Empty)
 | 
						|
            {
 | 
						|
                return value;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                return result;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
}
 |