mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-16 21:19:34 +08:00
Synchronization code
This commit is contained in:
parent
fda15922ff
commit
d8f93b2ae6
@ -647,12 +647,12 @@ namespace SqlSugar
|
||||
var sql = queryable.ToSql();
|
||||
var dr = this.Context.Ado.GetDataReader(sql.Key,sql.Value);
|
||||
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
var columns = entityInfo.Columns.Where(it => it.IsIgnore == false).ToList();
|
||||
var cacheKey = "ForEachDataReader"+typeof(T).GetHashCode()+string.Join(",", columns.Select(it => it.PropertyName));
|
||||
var columns = UtilMethods.GetColumnInfo(dr);
|
||||
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", () =>
|
||||
{
|
||||
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;
|
||||
});
|
||||
using (dr)
|
||||
@ -675,12 +675,12 @@ namespace SqlSugar
|
||||
var sql = queryable.ToSql();
|
||||
var dr =await this.Context.Ado.GetDataReaderAsync(sql.Key, sql.Value);
|
||||
var entityInfo = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
var columns = entityInfo.Columns.Where(it => it.IsIgnore == false).ToList();
|
||||
var cacheKey = "ForEachDataReader" + typeof(T).GetHashCode() + string.Join(",", columns.Select(it => it.PropertyName));
|
||||
var columns = UtilMethods.GetColumnInfo(dr);
|
||||
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", () =>
|
||||
{
|
||||
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;
|
||||
});
|
||||
using (dr)
|
||||
|
@ -18,6 +18,28 @@ namespace SqlSugar
|
||||
{
|
||||
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)
|
||||
{
|
||||
// 创建 List<Type> 类型的实例
|
||||
|
Loading…
Reference in New Issue
Block a user