mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
Update GetCache Key
This commit is contained in:
@@ -13,8 +13,9 @@ namespace SqlSugar
|
|||||||
protected List<T> GetEntityList<T>(SqlSugarProvider context, IDataReader dataReader)
|
protected List<T> GetEntityList<T>(SqlSugarProvider context, IDataReader dataReader)
|
||||||
{
|
{
|
||||||
Type type = typeof(T);
|
Type type = typeof(T);
|
||||||
var fieldNames = GetDataReaderNames(dataReader);
|
string types = null;
|
||||||
string cacheKey = GetCacheKey(type,fieldNames);
|
var fieldNames = GetDataReaderNames(dataReader,ref types);
|
||||||
|
string cacheKey = GetCacheKey(type,fieldNames) + types;
|
||||||
IDataReaderEntityBuilder<T> entytyList = context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () =>
|
IDataReaderEntityBuilder<T> entytyList = context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () =>
|
||||||
{
|
{
|
||||||
var cacheResult = new IDataReaderEntityBuilder<T>(context, dataReader,fieldNames).CreateBuilder(type);
|
var cacheResult = new IDataReaderEntityBuilder<T>(context, dataReader,fieldNames).CreateBuilder(type);
|
||||||
@@ -38,8 +39,9 @@ namespace SqlSugar
|
|||||||
protected async Task<List<T>> GetEntityListAsync<T>(SqlSugarProvider context, IDataReader dataReader)
|
protected async Task<List<T>> GetEntityListAsync<T>(SqlSugarProvider context, IDataReader dataReader)
|
||||||
{
|
{
|
||||||
Type type = typeof(T);
|
Type type = typeof(T);
|
||||||
var fieldNames = GetDataReaderNames(dataReader);
|
string types = null;
|
||||||
string cacheKey = GetCacheKey(type, fieldNames);
|
var fieldNames = GetDataReaderNames(dataReader,ref types);
|
||||||
|
string cacheKey = GetCacheKey(type, fieldNames)+types;
|
||||||
IDataReaderEntityBuilder<T> entytyList = context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () =>
|
IDataReaderEntityBuilder<T> entytyList = context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () =>
|
||||||
{
|
{
|
||||||
var cacheResult = new IDataReaderEntityBuilder<T>(context, dataReader, fieldNames).CreateBuilder(type);
|
var cacheResult = new IDataReaderEntityBuilder<T>(context, dataReader, fieldNames).CreateBuilder(type);
|
||||||
@@ -73,14 +75,18 @@ namespace SqlSugar
|
|||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<string> GetDataReaderNames(IDataReader dataReader)
|
private List<string> GetDataReaderNames(IDataReader dataReader,ref string types)
|
||||||
{
|
{
|
||||||
List<string> keys = new List<string>();
|
List<string> keys = new List<string>();
|
||||||
|
StringBuilder sbTypes = new StringBuilder();
|
||||||
var count = dataReader.FieldCount;
|
var count = dataReader.FieldCount;
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
keys.Add(dataReader.GetName(i));
|
keys.Add(dataReader.GetName(i));
|
||||||
|
var type = dataReader.GetFieldType(i);
|
||||||
|
sbTypes.Append(type.Name.Substring(0,2));
|
||||||
}
|
}
|
||||||
|
types = sbTypes.ToString();
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user