From fb723127a005b2ac2101e612be67455a9421458e Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 29 Sep 2017 14:53:58 +0800 Subject: [PATCH] - --- .../SqlSugar/CacheScheme/CacheEngines.cs | 4 ++-- .../SqlSugar/CacheScheme/CacheSchemeMain.cs | 18 +++++++++++++++--- Src/Asp.Net/SqlSugar/Entities/CacheKey.cs | 5 ++--- .../IntegrationInterface/ICacheService.cs | 2 +- .../IntegrationServices/CacheService.cs | 2 +- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/CacheScheme/CacheEngines.cs b/Src/Asp.Net/SqlSugar/CacheScheme/CacheEngines.cs index 63fe98a45..9de3113ed 100644 --- a/Src/Asp.Net/SqlSugar/CacheScheme/CacheEngines.cs +++ b/Src/Asp.Net/SqlSugar/CacheScheme/CacheEngines.cs @@ -7,12 +7,12 @@ namespace SqlSugar { internal class CacheEngines { - public string GetCacheMapping() + public static string GetCacheMapping(CacheKey key) { return null; } - public string GetCacheData() + public static string GetCacheData(string key) { return null; } diff --git a/Src/Asp.Net/SqlSugar/CacheScheme/CacheSchemeMain.cs b/Src/Asp.Net/SqlSugar/CacheScheme/CacheSchemeMain.cs index b0a21c27e..7e9a48c5f 100644 --- a/Src/Asp.Net/SqlSugar/CacheScheme/CacheSchemeMain.cs +++ b/Src/Asp.Net/SqlSugar/CacheScheme/CacheSchemeMain.cs @@ -8,11 +8,23 @@ namespace SqlSugar internal class CacheSchemeMain { - public static T GetOrCreate(ICacheService cacheService,QueryBuilder queryBuilder,Func getData,int cacheDurationInSeconds, SqlSugarClient context) + public static T GetOrCreate(ICacheService cacheService, QueryBuilder queryBuilder, Func getData, int cacheDurationInSeconds, SqlSugarClient context) { - string key = CacheKeyBuider.GetKey(context,queryBuilder).ToString(); - var result= cacheService.GetOrCreate(key, () => getData(), cacheDurationInSeconds); + CacheKey key = CacheKeyBuider.GetKey(context, queryBuilder); + var mappingKey = CacheEngines.GetCacheMapping(key); + T result = default(T); + if (mappingKey.IsNullOrEmpty()) + result = getData(); + else + { + result = cacheService.GetOrCreate("", () => getData(), cacheDurationInSeconds); + } return result; } + + public static void RemoveCache(string tableName) + { + + } } } diff --git a/Src/Asp.Net/SqlSugar/Entities/CacheKey.cs b/Src/Asp.Net/SqlSugar/Entities/CacheKey.cs index eff2704dd..6e6b49dfb 100644 --- a/Src/Asp.Net/SqlSugar/Entities/CacheKey.cs +++ b/Src/Asp.Net/SqlSugar/Entities/CacheKey.cs @@ -7,8 +7,7 @@ namespace SqlSugar { public class CacheKey { - public new string ToString() { - return ""; - } + public string[] Tables { get; set; } + public List IdentificationList { get; set; } } } diff --git a/Src/Asp.Net/SqlSugar/IntegrationInterface/ICacheService.cs b/Src/Asp.Net/SqlSugar/IntegrationInterface/ICacheService.cs index d73b802a9..a932fa60a 100644 --- a/Src/Asp.Net/SqlSugar/IntegrationInterface/ICacheService.cs +++ b/Src/Asp.Net/SqlSugar/IntegrationInterface/ICacheService.cs @@ -11,6 +11,6 @@ namespace SqlSugar V Get(string key); IEnumerable GetAllKey(); void Remove(string key); - V GetOrCreate(string cacheKey, Func create,int cacheDurationInSeconds); + V GetOrCreate(string cacheKey, Func create,int cacheDurationInSeconds=int.MaxValue); } } \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/IntegrationServices/CacheService.cs b/Src/Asp.Net/SqlSugar/IntegrationServices/CacheService.cs index 9bf9d43d0..740115728 100644 --- a/Src/Asp.Net/SqlSugar/IntegrationServices/CacheService.cs +++ b/Src/Asp.Net/SqlSugar/IntegrationServices/CacheService.cs @@ -32,7 +32,7 @@ namespace SqlSugar return ReflectionInoCore.GetInstance().GetAllKey(); } - public V GetOrCreate(string cacheKey, Func create) + public V GetOrCreate(string cacheKey, Func create,int cacheDurationInSeconds=int.MaxValue) { return ReflectionInoCore.GetInstance().GetOrCreate(cacheKey, create); }