mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
Update db.QueryableByObject
This commit is contained in:
@@ -10,5 +10,47 @@ namespace SqlSugar
|
||||
{
|
||||
public object QueryableObj { get; internal set; }
|
||||
public SqlSugarProvider Context { get; internal set; }
|
||||
|
||||
public QueryMethodInfo Where(string sql, object parameters)
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("Where", 2, typeof(string), typeof(object));
|
||||
this.QueryableObj= method.Invoke(QueryableObj, new object[] { sql, parameters });
|
||||
return this;
|
||||
}
|
||||
|
||||
public QueryMethodInfo SplitTable(DateTime begintTime,DateTime endTime)
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("SplitTable", 2, typeof(DateTime), typeof(DateTime));
|
||||
this.QueryableObj = method.Invoke(QueryableObj, new object[] {begintTime,endTime });
|
||||
return this;
|
||||
}
|
||||
public QueryMethodInfo SplitTable()
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("SplitTable", 0);
|
||||
this.QueryableObj = method.Invoke(QueryableObj, new object[] { });
|
||||
return this;
|
||||
}
|
||||
|
||||
public object ToPageList(int pageNumber,int pageSize)
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("ToPageList", 2,typeof(int),typeof(int));
|
||||
var reslt = method.Invoke(QueryableObj, new object[] { pageNumber, pageSize });
|
||||
return reslt;
|
||||
}
|
||||
public object ToPageList(int pageNumber, int pageSize,ref int count)
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("ToPageList", 3, typeof(int), typeof(int), typeof(int).MakeByRefType());
|
||||
var parameters = new object[] { pageNumber, pageSize, count };
|
||||
var reslt = method.Invoke(QueryableObj, parameters);
|
||||
count = parameters.Last().ObjToInt();
|
||||
return reslt;
|
||||
}
|
||||
public object ToList()
|
||||
{
|
||||
var method = QueryableObj.GetType().GetMyMethod("ToList", 0);
|
||||
var reslt = method.Invoke(QueryableObj, new object[] { });
|
||||
return reslt;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -32,6 +32,21 @@ namespace SqlSugar
|
||||
it.GetParameters().Length == argCount&&
|
||||
it.GetParameters().First().ParameterType==parameterType);
|
||||
}
|
||||
public static MethodInfo GetMyMethod(this Type type, string name, int argCount, Type parameterType,Type parameterType2)
|
||||
{
|
||||
return type.GetMethods().Where(it=>it.Name == name).FirstOrDefault(it =>
|
||||
it.GetParameters().Length == argCount &&
|
||||
it.GetParameters().First().ParameterType == parameterType&&
|
||||
it.GetParameters()[1].ParameterType == parameterType2) ;
|
||||
}
|
||||
public static MethodInfo GetMyMethod(this Type type, string name, int argCount, Type parameterType, Type parameterType2, Type parameterType3)
|
||||
{
|
||||
return type.GetMethods().Where(it => it.Name == name).FirstOrDefault(it =>
|
||||
it.GetParameters().Length == argCount &&
|
||||
it.GetParameters().First().ParameterType == parameterType &&
|
||||
it.GetParameters()[1].ParameterType == parameterType2&&
|
||||
it.GetParameters()[2].ParameterType == parameterType3);
|
||||
}
|
||||
public static List<T> ToList<T>(this T thisValue,Func<T,T> action) where T:class,new()
|
||||
{
|
||||
return new List<T> { thisValue };
|
||||
|
Reference in New Issue
Block a user