diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs new file mode 100644 index 000000000..406cfe890 --- /dev/null +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs @@ -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; } + } +} diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs index 47f1c1a03..1ff133957 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -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; + } /// /// Get datebase time /// diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs index 3a006fbe6..e316e3f05 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarScopeProvider.cs @@ -815,6 +815,10 @@ namespace SqlSugar { ScopedContext.Tracking(datas); } + public QueryMethodInfo QueryableByObject(Type entityType) + { + return ScopedContext.QueryableByObject(entityType); + } #endregion } } \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs b/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs index a7128df6d..1ba7cbb1c 100644 --- a/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs @@ -79,6 +79,7 @@ namespace SqlSugar #endregion #region Queryable + QueryMethodInfo QueryableByObject(Type entityType); ISugarQueryable MasterQueryable(); ISugarQueryable SlaveQueryable(); ISugarQueryable SqlQueryable(string sql) where T : class, new(); diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.csproj b/Src/Asp.Net/SqlSugar/SqlSugar.csproj index de20cd075..db6a8cd70 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.Net/SqlSugar/SqlSugar.csproj @@ -138,6 +138,7 @@ + diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index 237259c36..2cacfbf0e 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -284,6 +284,10 @@ namespace SqlSugar } #endregion + public QueryMethodInfo QueryableByObject(Type entityType) + { + return this.Context.QueryableByObject(entityType); + } public ISugarQueryable MasterQueryable() { return this.Context.MasterQueryable(); diff --git a/Src/Asp.Net/SqlSugar/SqlSugarScope.cs b/Src/Asp.Net/SqlSugar/SqlSugarScope.cs index 1a6577810..a64e5ce8e 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarScope.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarScope.cs @@ -872,5 +872,9 @@ namespace SqlSugar { return ScopedContext.AsyncLock(timeOutSeconds); } + public QueryMethodInfo QueryableByObject(Type entityType) + { + return ScopedContext.QueryableByObject(entityType); + } } }