189 lines
6.6 KiB
C#
189 lines
6.6 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq.Expressions;
|
|||
|
|
|
|||
|
|
namespace Mtxfw.Utility.DataAccess
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询类
|
|||
|
|
/// </summary>
|
|||
|
|
public partial class Sql : DbHelperSqlSugar
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询所有
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindAll<T>() where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().ToList();
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 条件查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <param name="orderByPredicate"></param>
|
|||
|
|
/// <param name="orderType"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindAll<T>(Expression<Func<T, bool>> predicate, Expression<Func<T, object>> orderByPredicate, SqlSugar.OrderByType orderType) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderByPredicate, orderType).ToList();
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 条件查询,带排序
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <param name="orderByStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindAll<T>(Expression<Func<T, bool>> predicate, string orderByStr) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderByStr).ToList();
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据主键查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public T Find<T>(int keyValue) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().InSingle(keyValue);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据主键查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public T Find<T>(long keyValue) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().InSingle(keyValue);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询第一条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public T FindFirst<T>(Expression<Func<T, bool>> predicate) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).First();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询第一条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public T FindFirst<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).First();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> Find<T>(Expression<Func<T, bool>> predicate) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> Find<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).ToList();
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取记录条数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public int GetCount<T>(Expression<Func<T, bool>> predicate) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).Count();
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 取前几条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="count"></param>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <param name="orderByPredicate"></param>
|
|||
|
|
/// <param name="orderType"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate, Expression<Func<T, object>> orderByPredicate, SqlSugar.OrderByType orderType) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderByPredicate, orderType).Take(count).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 取前几条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="count"></param>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <param name="orderBy"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).Take(count).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 取前几条数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="count"></param>
|
|||
|
|
/// <param name="predicate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate) where T : class, new()
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).Take(count).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 执行事务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="sqlStr"></param>
|
|||
|
|
/// <param name="obj"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public List<T> FindTran<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
|
|||
|
|
{
|
|||
|
|
var result = Db.Ado.UseTran<List<T>>(() =>
|
|||
|
|
{
|
|||
|
|
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).ToList();
|
|||
|
|
throw new Exception("error haha");
|
|||
|
|
});
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <typeparam name="T2"></typeparam>
|
|||
|
|
/// <param name="joinExpression"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public void FindTest<T, T2>(Expression<Func<T, T2, object[]>> joinExpression) where T : class, new()
|
|||
|
|
{
|
|||
|
|
Db.Queryable<T, T2>(joinExpression);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|