Add db.QueryableByObject

This commit is contained in:
sunkaixuan 2023-06-09 16:37:09 +08:00
parent add65b1a59
commit aeaed2cbb6
7 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
{
public class QueryMethodInfo
{
public object QueryableObj { get; internal set; }
public SqlSugarProvider Context { get; internal set; }
}
}

View File

@ -82,6 +82,16 @@ namespace SqlSugar
#endregion
#region Queryable
public QueryMethodInfo QueryableByObject(Type entityType)
{
QueryMethodInfo result = new QueryMethodInfo();
var method=this.GetType().GetMyMethod("Queryable", 0);
var methodT=method.MakeGenericMethod(entityType);
var queryableObj=methodT.Invoke(this,new object[] {});
result.QueryableObj = queryableObj;
result.Context = this.Context;
return result;
}
/// <summary>
/// Get datebase time
/// </summary>

View File

@ -815,6 +815,10 @@ namespace SqlSugar
{
ScopedContext.Tracking(datas);
}
public QueryMethodInfo QueryableByObject(Type entityType)
{
return ScopedContext.QueryableByObject(entityType);
}
#endregion
}
}

View File

@ -79,6 +79,7 @@ namespace SqlSugar
#endregion
#region Queryable
QueryMethodInfo QueryableByObject(Type entityType);
ISugarQueryable<T> MasterQueryable<T>();
ISugarQueryable<T> SlaveQueryable<T>();
ISugarQueryable<T> SqlQueryable<T>(string sql) where T : class, new();

View File

@ -138,6 +138,7 @@
<Compile Include="Abstract\QueryableProvider\Includes.cs" />
<Compile Include="Abstract\QueryableProvider\MappingFieldsHelper.cs" />
<Compile Include="Abstract\QueryableProvider\NavigatManager.cs" />
<Compile Include="Abstract\QueryableProvider\QueryMethodInfo.cs" />
<Compile Include="Abstract\SaveableProvider\StorageableMethodInfo.cs" />
<Compile Include="Abstract\SaveableProvider\StorageableDataTable.cs" />
<Compile Include="Abstract\SqlBuilderProvider\Entities.cs" />

View File

@ -284,6 +284,10 @@ namespace SqlSugar
}
#endregion
public QueryMethodInfo QueryableByObject(Type entityType)
{
return this.Context.QueryableByObject(entityType);
}
public ISugarQueryable<T> MasterQueryable<T>()
{
return this.Context.MasterQueryable<T>();

View File

@ -872,5 +872,9 @@ namespace SqlSugar
{
return ScopedContext.AsyncLock(timeOutSeconds);
}
public QueryMethodInfo QueryableByObject(Type entityType)
{
return ScopedContext.QueryableByObject(entityType);
}
}
}