DapperEx/SQL/SqlQuery.cs
(开头部分) 23KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using Dapper;
namespace DapperEx
{
public abstract class SqlQuery
{
private static object objLock = new object();
protected int _TopNum; //查询TOP
protected QueryOrder _Order; //排序
protected StringBuilder _Sql; //组装的SQL WHERE部分
protected IList<DynamicPropertyModel> _Param; //参数动态类
protected string ParamPrefix = "@"; //参数前缀
internal ModelDes _ModelDes;//处理的实体对象描述
protected int _PageIndex;
protected int _PageSize;
protected DBType DbType;
protected IList<string> ExcColums;//不加入SQL执行的列
//动态参数类缓存
protected static Dictionary<string, Type> DynamicParamModelCache = new Dictionary<string, Type>();
/// <summary>
/// 记录参数名和值
/// </summary>
protected Dictionary<string, object> ParamValues = new Dictionary<string, object>();
/// <summary>
/// TOP
/// </summary>
public virtual int TopNum { get { return _TopNum; } }
/// <summary>
/// 排序
/// </summary>
public virtual QueryOrder Order { get { return _Order; } }
/// <summary>
/// SQL字符串,只表示包括Where部分
/// </summary>
internal virtual string WhereSql
{
get
{
var sb = new StringBuilder();
var arr = _Sql.ToString().Split(' ').Where(m=>!string.IsNullOrEmpty(m)).ToList();
if (arr.Count > 0)
{
sb.Append("WHERE");
}
for (int i = 0; i < arr.Count; i++)
{
if (i == 0 && (arr[i] == "AND" || arr[i] == "OR"))
{
continue;
}
if (i > 0 && arr[i - 1] == "(" && (arr[i] == "AND" || arr[i] == "OR"))
{
continue;
}
后面还有 571 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。