mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-05 17:37:58 +08:00
Update data cache
This commit is contained in:
parent
fecffff14c
commit
23adbefe94
@ -33,21 +33,16 @@ namespace ExtensionsDemo
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
db.Aop.OnLogExecuted = (s, p) =>
|
||||||
for (int i = 0; i < 10000; i++)
|
|
||||||
{
|
{
|
||||||
db.Queryable<Student>().Where(it => it.Id > 0).WithCache().ToList();
|
Console.WriteLine(s);
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
db.Queryable<Student, Student>((s1, s2) => s1.Id == s2.Id).Select(s1 => s1).WithCache().ToList();
|
|
||||||
|
|
||||||
|
|
||||||
db.Queryable<Student, Student>((s1, s2) => new object[] {
|
|
||||||
JoinType.Left,s1.Id==s2.Id
|
|
||||||
}).Select(s1 => s1).WithCache().ToList();
|
|
||||||
|
|
||||||
|
db.CodeFirst.InitTables<Student>();
|
||||||
|
db.Insertable(new Student() { CreateTime = DateTime.Now, Name= "a",SchoolId=0 }).ExecuteCommand();
|
||||||
|
|
||||||
|
var x=db.Queryable<Student>().WithCache().ToDictionaryList();
|
||||||
|
// db.Queryable<Student>().Select("1 as idx").WithCache().ToList();
|
||||||
Console.WriteLine("Cache Key Count:" + myCache.GetAllKey<string>().Count());
|
Console.WriteLine("Cache Key Count:" + myCache.GetAllKey<string>().Count());
|
||||||
|
|
||||||
foreach (var item in myCache.GetAllKey<string>())
|
foreach (var item in myCache.GetAllKey<string>())
|
||||||
@ -56,6 +51,7 @@ namespace ExtensionsDemo
|
|||||||
Console.WriteLine(item);
|
Console.WriteLine(item);
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
db.Deleteable<Student>().Where(it => it.Id == 1).RemoveDataCache().ExecuteCommand();
|
db.Deleteable<Student>().Where(it => it.Id == 1).RemoveDataCache().ExecuteCommand();
|
||||||
|
|
||||||
|
@ -8,6 +8,6 @@ namespace ExtensionsDemo
|
|||||||
{
|
{
|
||||||
public class Config
|
public class Config
|
||||||
{
|
{
|
||||||
public static string ConnectionString = "server=.;uid=sa;pwd=haosql;database=SqlSugar4XTest";
|
public static string ConnectionString = "server=.;uid=sa;pwd=sasa;database=SqlSugar4XTest";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -751,6 +751,9 @@ namespace SqlSugar
|
|||||||
var result = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
var result = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);
|
||||||
result.Context = this.Context;
|
result.Context = this.Context;
|
||||||
result.SqlBuilder = this.SqlBuilder;
|
result.SqlBuilder = this.SqlBuilder;
|
||||||
|
result.QueryBuilder.ResultType = this.QueryBuilder.ResultType;
|
||||||
|
result.IsCache = this.IsCache;
|
||||||
|
result.CacheTime = this.CacheTime;
|
||||||
QueryBuilder.SelectValue = selectValue;
|
QueryBuilder.SelectValue = selectValue;
|
||||||
if (this.IsAs)
|
if (this.IsAs)
|
||||||
{
|
{
|
||||||
@ -954,7 +957,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public virtual DataTable ToDataTable()
|
public virtual DataTable ToDataTable()
|
||||||
{
|
{
|
||||||
QueryBuilder.ResultType = typeof(DataTable);
|
QueryBuilder.ResultType = typeof(SugarCacheDataTable);
|
||||||
InitMapping();
|
InitMapping();
|
||||||
var sqlObj = this.ToSql();
|
var sqlObj = this.ToSql();
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
@ -1003,6 +1006,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public Dictionary<string, object> ToDictionary(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
public Dictionary<string, object> ToDictionary(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
||||||
{
|
{
|
||||||
|
this.QueryBuilder.ResultType = typeof(SugarCacheDictionary);
|
||||||
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle).GetResultString();
|
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle).GetResultString();
|
||||||
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle).GetResultString();
|
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle).GetResultString();
|
||||||
var result = this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToList().ToDictionary(it => it.Key.ObjToString(), it => it.Value);
|
var result = this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToList().ToDictionary(it => it.Key.ObjToString(), it => it.Value);
|
||||||
@ -1010,6 +1014,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Dictionary<string, object>> ToDictionaryAsync(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
public async Task<Dictionary<string, object>> ToDictionaryAsync(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
||||||
{
|
{
|
||||||
|
this.QueryBuilder.ResultType = typeof(SugarCacheDictionary);
|
||||||
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle).GetResultString();
|
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle).GetResultString();
|
||||||
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle).GetResultString();
|
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle).GetResultString();
|
||||||
var list = await this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToListAsync();
|
var list = await this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToListAsync();
|
||||||
@ -1325,7 +1330,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<DataTable> ToDataTableAsync()
|
public async Task<DataTable> ToDataTableAsync()
|
||||||
{
|
{
|
||||||
QueryBuilder.ResultType = typeof(DataTable);
|
QueryBuilder.ResultType = typeof(SugarCacheDataTable);
|
||||||
InitMapping();
|
InitMapping();
|
||||||
var sqlObj = this.ToSql();
|
var sqlObj = this.ToSql();
|
||||||
RestoreMapping();
|
RestoreMapping();
|
||||||
|
@ -63,4 +63,17 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class SugarCacheDictionary
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
internal class SugarCacheDictionaryList
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
internal class SugarCacheDataTable
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,8 @@ namespace SqlSugar
|
|||||||
SqlSugarProvider Context { get; set; }
|
SqlSugarProvider Context { get; set; }
|
||||||
ISqlBuilder SqlBuilder { get; set; }
|
ISqlBuilder SqlBuilder { get; set; }
|
||||||
QueryBuilder QueryBuilder { get; set; }
|
QueryBuilder QueryBuilder { get; set; }
|
||||||
|
bool IsCache { get; set; }
|
||||||
|
int CacheTime { get; set; }
|
||||||
ISugarQueryable<T> Clone();
|
ISugarQueryable<T> Clone();
|
||||||
ISugarQueryable<T> AS<T2>(string tableName);
|
ISugarQueryable<T> AS<T2>(string tableName);
|
||||||
ISugarQueryable<T> AS(string tableName);
|
ISugarQueryable<T> AS(string tableName);
|
||||||
|
Loading…
Reference in New Issue
Block a user