diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 4cdc7497b..cdc2003c0 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -180,6 +180,8 @@ namespace OrmTest.Demo var between = db.Queryable().Where(it => SqlFunc.Between(it.Id, 1, 20)).ToList(); var getTodayList = db.Queryable().Where(it => SqlFunc.DateIsSame(it.CreateTime, DateTime.Now)).ToList(); + + var joinSql = db.Queryable("student", "s").OrderBy("id").Select("id,name").ToPageList(1, 2); } public static void Page() { diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 850dd6268..29562a261 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -8,6 +8,8 @@ using System.Linq.Expressions; using System.Text; using System.Text.RegularExpressions; using System.Reflection; +using System.Dynamic; + namespace SqlSugar { #region T1 @@ -648,6 +650,10 @@ namespace SqlSugar var entityType = typeof(TResult); using (var dataReader = this.Db.GetDataReader(sqlObj.Key, sqlObj.Value.ToArray())) { + if (typeof(TResult) == typeof(ExpandoObject)) + { + return this.Context.RewritableMethods.DataReaderToExpandoObjectList(dataReader) as List; + } if (entityType.IsAnonymousType() || isComplexModel) { result = this.Context.RewritableMethods.DataReaderToDynamicList(dataReader); diff --git a/Src/Asp.Net/SqlSugar/Common/RewritableMethods.cs b/Src/Asp.Net/SqlSugar/Common/RewritableMethods.cs index 0968b8469..a193309a0 100644 --- a/Src/Asp.Net/SqlSugar/Common/RewritableMethods.cs +++ b/Src/Asp.Net/SqlSugar/Common/RewritableMethods.cs @@ -36,6 +36,24 @@ namespace SqlSugar return result; } + /// + ///DataReader to Dynamic List + /// + /// + /// + public List DataReaderToExpandoObjectList(IDataReader reader) + { + List result = new List(); + if (reader != null && !reader.IsClosed) + { + while (reader.Read()) + { + result.Add(DataReaderToExpandoObject(reader)); + } + } + return result; + } + /// ///DataReader to DataReaderToDictionary /// @@ -145,7 +163,7 @@ namespace SqlSugar } } return result; - } + } #endregion #region Serialize @@ -189,7 +207,7 @@ namespace SqlSugar var jsonString = SerializeObject(sourceObject); return DeserializeObject(jsonString); } - } + } #endregion #region DataTable @@ -208,7 +226,7 @@ namespace SqlSugar } return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(deserializeObject)); - } + } #endregion #region Cache @@ -230,9 +248,9 @@ namespace SqlSugar public void RemoveCache(string key) { CacheManager.GetInstance().Remove(key); - } + } #endregion - + } } diff --git a/Src/Asp.Net/SqlSugar/Entities/SugarDynamic.cs b/Src/Asp.Net/SqlSugar/Entities/SugarDynamic.cs deleted file mode 100644 index 9ed9cd4a8..000000000 --- a/Src/Asp.Net/SqlSugar/Entities/SugarDynamic.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace SqlSugar -{ - public class SugarDynamic - { - - } -} \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/Interface/IRewritableMethods.cs b/Src/Asp.Net/SqlSugar/Interface/IRewritableMethods.cs index 730711572..85e54911a 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IRewritableMethods.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IRewritableMethods.cs @@ -11,6 +11,7 @@ namespace SqlSugar public interface IRewritableMethods { ExpandoObject DataReaderToExpandoObject(IDataReader reader); + List DataReaderToExpandoObjectList(IDataReader reader); List DataReaderToDynamicList(IDataReader reader); string SerializeObject(object value); T DeserializeObject(string value); diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.csproj b/Src/Asp.Net/SqlSugar/SqlSugar.csproj index b39922f3d..0bb674ef7 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.Net/SqlSugar/SqlSugar.csproj @@ -154,7 +154,6 @@ - diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index dd114c65e..e1c429c38 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.Dynamic; using System.Linq; using System.Linq.Expressions; using System.Text; @@ -98,9 +99,9 @@ namespace SqlSugar /// /// Lambda Query operation /// - public virtual ISugarQueryable Queryable(string tableName, string shortName) + public virtual ISugarQueryable Queryable(string tableName, string shortName) { - var queryable = Queryable(); + var queryable = Queryable(); queryable.SqlBuilder.QueryBuilder.EntityName = tableName; queryable.SqlBuilder.QueryBuilder.TableShortName = shortName; return queryable;