From 1aaca5d76d7ee9a741f41b001119eb50a9f063f1 Mon Sep 17 00:00:00 2001 From: mythz Date: Fri, 21 Sep 2012 12:52:29 -0400 Subject: [PATCH] Allow calling DeleteAll when there are no ids for T --- src/ServiceStack.Redis/Generic/RedisTypedClient.cs | 14 ++++++++++---- src/ServiceStack.Redis/RedisClient.cs | 11 +++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/ServiceStack.Redis/Generic/RedisTypedClient.cs b/src/ServiceStack.Redis/Generic/RedisTypedClient.cs index 5b23df7a..9386101a 100644 --- a/src/ServiceStack.Redis/Generic/RedisTypedClient.cs +++ b/src/ServiceStack.Redis/Generic/RedisTypedClient.cs @@ -441,15 +441,21 @@ public void DeleteByIds(IEnumerable ids) if (ids == null) return; var urnKeys = ids.ConvertAll(t => client.UrnKey(t)); - this.RemoveEntry(urnKeys.ToArray()); - client.RemoveTypeIds(ids.ConvertAll(x => x.ToString()).ToArray()); + if (urnKeys.Count > 0) + { + this.RemoveEntry(urnKeys.ToArray()); + client.RemoveTypeIds(ids.ConvertAll(x => x.ToString()).ToArray()); + } } public void DeleteAll() { var urnKeys = client.GetAllItemsFromSet(this.TypeIdsSetKey); - this.RemoveEntry(urnKeys.ToArray()); - this.RemoveEntry(this.TypeIdsSetKey); + if (urnKeys.Count > 0) + { + this.RemoveEntry(urnKeys.ToArray()); + this.RemoveEntry(this.TypeIdsSetKey); + } } #endregion diff --git a/src/ServiceStack.Redis/RedisClient.cs b/src/ServiceStack.Redis/RedisClient.cs index a1c1c7a5..eaf8182a 100644 --- a/src/ServiceStack.Redis/RedisClient.cs +++ b/src/ServiceStack.Redis/RedisClient.cs @@ -647,7 +647,7 @@ public void Delete(T entity) public void DeleteByIds(ICollection ids) where T : class, new() { - if (ids == null) return; + if (ids == null || ids.Count == 0) return; var urnKeys = ids.ConvertAll(UrnKey); this.RemoveEntry(urnKeys.ToArray()); @@ -658,9 +658,12 @@ public void Delete(T entity) { var typeIdsSetKey = this.GetTypeIdsSetKey(); var ids = this.GetAllItemsFromSet(typeIdsSetKey); - var urnKeys = ids.ConvertAll(UrnKey); - this.RemoveEntry(urnKeys.ToArray()); - this.Remove(typeIdsSetKey); + if (ids.Count > 0) + { + var urnKeys = ids.ConvertAll(UrnKey); + this.RemoveEntry(urnKeys.ToArray()); + this.Remove(typeIdsSetKey); + } } ///