From a2ad14b3bc8d8428af60e932a6c40a956cae87c9 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 10 Oct 2017 19:58:57 +0800 Subject: [PATCH] Add RemoveDataCache --- .../Abstract/DeleteProvider/DeleteableProvider.cs | 10 +++++++++- .../Abstract/InsertableProvider/InsertableProvider.cs | 7 +++++++ .../Abstract/QueryableProvider/QueryableProvider.cs | 2 +- .../Abstract/UpdateProvider/UpdateableProvider.cs | 8 ++++++++ Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs | 4 ++-- Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs | 2 +- Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs | 1 + Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs | 1 + Src/Asp.Net/SqlSugar/Interface/Insertable.cs | 1 + 9 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs index 4a4405e5c..0ac437ac1 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs @@ -49,7 +49,7 @@ namespace SqlSugar Task result = new Task(() => { IDeleteable asyncDeleteable = CopyDeleteable(); - return asyncDeleteable.ExecuteCommand()>0; + return asyncDeleteable.ExecuteCommand() > 0; }); result.Start(); return result; @@ -173,6 +173,14 @@ namespace SqlSugar DeleteBuilder.Parameters.AddRange(parameters); return this; } + + public IDeleteable RemoveDataCache() + { + var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; + CacheSchemeMain.RemoveCache(cacheService, this.Context.EntityMaintenance.GetTableName()); + return this; + } + public IDeleteable In(List primaryKeyValues) { if (primaryKeyValues == null || primaryKeyValues.Count() == 0) diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index ce773b3ae..b0d1f01b7 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -184,6 +184,13 @@ namespace SqlSugar this.InsertBuilder.IsNoInsertNull = isNoInsertNull; return this; } + + public IInsertable RemoveDataCache() + { + var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; + CacheSchemeMain.RemoveCache(cacheService, this.Context.EntityMaintenance.GetTableName()); + return this; + } #endregion #region Protected Methods diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index b242c7e77..c3f0df753 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1032,7 +1032,7 @@ namespace SqlSugar var sqlObj = this.ToSql(); if (IsCache) { - var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCache; + var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; result = CacheSchemeMain.GetOrCreate>(cacheService, this.QueryBuilder, () => { return GetData(sqlObj); }, CacheTime, this.Context); } else diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 1c7cec527..f41bc731c 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -174,6 +174,7 @@ namespace SqlSugar UpdateBuilder.WhereValues.Add(expResult.GetResultString()); return this; } + public IUpdateable With(string lockString) { if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer) @@ -181,6 +182,13 @@ namespace SqlSugar return this; } + public IUpdateable RemoveDataCache() + { + var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService; + CacheSchemeMain.RemoveCache(cacheService, this.Context.EntityMaintenance.GetTableName()); + return this; + } + internal void Init() { this.UpdateBuilder.TableName = EntityInfo.EntityName; diff --git a/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs b/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs index 7902f1dfc..31e25eb64 100644 --- a/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs +++ b/Src/Asp.Net/SqlSugar/Entities/ConnectionConfig.cs @@ -49,7 +49,7 @@ namespace SqlSugar set{ _SerializeService = value;} } - public ICacheService ReflectionInoCache + public ICacheService ReflectionInoCacheService { get { @@ -61,7 +61,7 @@ namespace SqlSugar set{_ReflectionInoCache = value;} } - public ICacheService DataInfoCache + public ICacheService DataInfoCacheService { get { diff --git a/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs b/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs index 8e320dad6..23ba2dce0 100644 --- a/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs +++ b/Src/Asp.Net/SqlSugar/Infrastructure/ContextMethods.cs @@ -272,7 +272,7 @@ namespace SqlSugar #region Cache public ICacheService GetReflectionInoCacheInstance() { - return Context.CurrentConnectionConfig.ConfigureExternalServices.ReflectionInoCache; + return Context.CurrentConnectionConfig.ConfigureExternalServices.ReflectionInoCacheService; } public void RemoveCacheAll() diff --git a/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs b/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs index f882d0abd..2fa7de4cf 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs @@ -26,6 +26,7 @@ namespace SqlSugar IDeleteable Where(string whereString, SugarParameter parameter); IDeleteable Where(string whereString, SugarParameter[] parameters); IDeleteable Where(string whereString, List parameters); + IDeleteable RemoveDataCache(); KeyValuePair> ToSql(); } } diff --git a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs index 884e657a6..31dca2110 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs @@ -30,6 +30,7 @@ namespace SqlSugar IUpdateable IgnoreColumns(Expression> columns); IUpdateable IgnoreColumns(Func ignoreColumMethod); IUpdateable ReSetValue(Expression> setValueExpression); + IUpdateable RemoveDataCache(); KeyValuePair> ToSql(); } } diff --git a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs index 862739ccd..8e9e67149 100644 --- a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs @@ -27,6 +27,7 @@ namespace SqlSugar IInsertable IgnoreColumns(Expression> columns); IInsertable IgnoreColumns(Func ignoreColumMethod); IInsertable Where(bool isInsertNull, bool isOffIdentity = false); + IInsertable RemoveDataCache(); KeyValuePair> ToSql(); } }