mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-17 13:39:33 +08:00
Synchronization code
This commit is contained in:
parent
fda15922ff
commit
d8f93b2ae6
@ -647,12 +647,12 @@ namespace SqlSugar
|
|||||||
var sql = queryable.ToSql();
|
var sql = queryable.ToSql();
|
||||||
var dr = this.Context.Ado.GetDataReader(sql.Key,sql.Value);
|
var dr = this.Context.Ado.GetDataReader(sql.Key,sql.Value);
|
||||||
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
var columns = entityInfo.Columns.Where(it => it.IsIgnore == false).ToList();
|
var columns = UtilMethods.GetColumnInfo(dr);
|
||||||
var cacheKey = "ForEachDataReader"+typeof(T).GetHashCode()+string.Join(",", columns.Select(it => it.PropertyName));
|
var cacheKey = "ForEachDataReader"+typeof(T).GetHashCode()+string.Join(",", columns.Select(it => it.Item1+it.Item2.Name+"_"));
|
||||||
IDataReaderEntityBuilder<T> entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate("cacheKey", () =>
|
IDataReaderEntityBuilder<T> entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate("cacheKey", () =>
|
||||||
{
|
{
|
||||||
var cacheResult = new IDataReaderEntityBuilder<T>(this.Context, dr,
|
var cacheResult = new IDataReaderEntityBuilder<T>(this.Context, dr,
|
||||||
columns.Select(it=>it.DbColumnName).ToList()).CreateBuilder(typeof(T));
|
columns.Select(it=>it.Item1).ToList()).CreateBuilder(typeof(T));
|
||||||
return cacheResult;
|
return cacheResult;
|
||||||
});
|
});
|
||||||
using (dr)
|
using (dr)
|
||||||
@ -675,12 +675,12 @@ namespace SqlSugar
|
|||||||
var sql = queryable.ToSql();
|
var sql = queryable.ToSql();
|
||||||
var dr =await this.Context.Ado.GetDataReaderAsync(sql.Key, sql.Value);
|
var dr =await this.Context.Ado.GetDataReaderAsync(sql.Key, sql.Value);
|
||||||
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
var columns = entityInfo.Columns.Where(it => it.IsIgnore == false).ToList();
|
var columns = UtilMethods.GetColumnInfo(dr);
|
||||||
var cacheKey = "ForEachDataReader" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.PropertyName));
|
var cacheKey = "ForEachDataReader" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.Item1 + it.Item2.Name + "_"));
|
||||||
IDataReaderEntityBuilder<T> entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate("cacheKey", () =>
|
IDataReaderEntityBuilder<T> entytyList = this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate("cacheKey", () =>
|
||||||
{
|
{
|
||||||
var cacheResult = new IDataReaderEntityBuilder<T>(this.Context, dr,
|
var cacheResult = new IDataReaderEntityBuilder<T>(this.Context, dr,
|
||||||
columns.Select(it => it.DbColumnName).ToList()).CreateBuilder(typeof(T));
|
columns.Select(it => it.Item1).ToList()).CreateBuilder(typeof(T));
|
||||||
return cacheResult;
|
return cacheResult;
|
||||||
});
|
});
|
||||||
using (dr)
|
using (dr)
|
||||||
|
@ -18,6 +18,28 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public class UtilMethods
|
public class UtilMethods
|
||||||
{
|
{
|
||||||
|
public static List<Tuple<string, Type>> GetColumnInfo(IDataReader reader)
|
||||||
|
{
|
||||||
|
var columnInfo = new List<Tuple<string, Type>>();
|
||||||
|
|
||||||
|
// 获取列的数量
|
||||||
|
int columnCount = reader.FieldCount;
|
||||||
|
|
||||||
|
// 遍历每一列
|
||||||
|
for (int i = 0; i < columnCount; i++)
|
||||||
|
{
|
||||||
|
// 获取列名
|
||||||
|
string columnName = reader.GetName(i);
|
||||||
|
|
||||||
|
// 获取列的数据类型
|
||||||
|
Type columnType = reader.GetFieldType(i);
|
||||||
|
|
||||||
|
// 将列名和类型添加到列表中
|
||||||
|
columnInfo.Add(Tuple.Create(columnName, columnType));
|
||||||
|
}
|
||||||
|
|
||||||
|
return columnInfo;
|
||||||
|
}
|
||||||
public static object ConvertToObjectList(Type targetType, List<object> sourceList)
|
public static object ConvertToObjectList(Type targetType, List<object> sourceList)
|
||||||
{
|
{
|
||||||
// 创建 List<Type> 类型的实例
|
// 创建 List<Type> 类型的实例
|
||||||
|
Loading…
Reference in New Issue
Block a user