diff --git a/Src/Asp.Net/SqlSugar/Abstract/CacheProvider/CacheProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/CacheProvider/CacheProvider.cs new file mode 100644 index 000000000..acb601470 --- /dev/null +++ b/Src/Asp.Net/SqlSugar/Abstract/CacheProvider/CacheProvider.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public class SugarCacheProvider + { + public ICacheService Servie { get; set; } + + public void RemoveDataCache(string likeString) + { + if (Servie == null) return; + CacheSchemeMain.RemoveCacheByLike(Servie, likeString); + } + + public List GetAllKey() + { + if (Servie == null) return new List(); + return Servie.GetAllKey()?.ToList(); + } + + public void Add(string key,object value) + { + if (Servie == null) return; + Servie.Add(key,value,60*60*24*100); + } + + public void Add(string key, object value,int seconds) + { + if (Servie == null) return; + Servie.Add(key, value,seconds); + } + + public T Get(string key) + { + if (Servie == null) return default(T); + return Servie.Get(key); + } + } +} diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs index 806221bbd..2e23d2b12 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -1069,5 +1069,21 @@ namespace SqlSugar } #endregion + + #region Cache + public SugarCacheProvider DataCache + { + get { + var services=this.CurrentConnectionConfig.ConfigureExternalServices; + if (services == null) + return new SugarCacheProvider(); + if (services.DataInfoCacheService == null) + return new SugarCacheProvider(); + SugarCacheProvider cache = new SugarCacheProvider(); + cache.Servie=services.DataInfoCacheService; + return cache; + } + } + #endregion } } diff --git a/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs b/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs index 08b959f95..a0999fd0a 100644 --- a/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/Interface/ISqlSugarClient.cs @@ -160,7 +160,11 @@ namespace SqlSugar IUpdateable Updateable(Expression> columns) where T : class, new(); IUpdateable Updateable(List UpdateObjs) where T : class, new(); IUpdateable Updateable(T UpdateObj) where T : class, new(); - IUpdateable Updateable(T[] UpdateObjs) where T : class, new(); + IUpdateable Updateable(T[] UpdateObjs) where T : class, new(); + #endregion + + #region Cache + SugarCacheProvider DataCache { get; } #endregion } } \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.csproj b/Src/Asp.Net/SqlSugar/SqlSugar.csproj index ac35f1dfe..2903c59c8 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.Net/SqlSugar/SqlSugar.csproj @@ -70,6 +70,7 @@ + diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index 2cd933a45..cd962b622 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -718,6 +718,13 @@ namespace SqlSugar #endregion + #region Cache + public SugarCacheProvider DataCache + { + get { return this.Context.DataCache; } + } + #endregion + #region Other method public DateTime GetDate() {