From cc94570ff51ee7462379ade43988d9931a406410 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Fri, 17 Jan 2025 10:52:06 +0100 Subject: [PATCH] add load-as-list to raven operations --- zero.Raven/Operations/RavenOperations.Read.cs | 21 +++++++++++++++++++ zero.Raven/Operations/RavenOperations.cs | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/zero.Raven/Operations/RavenOperations.Read.cs b/zero.Raven/Operations/RavenOperations.Read.cs index d3c8d825..f92612d4 100644 --- a/zero.Raven/Operations/RavenOperations.Read.cs +++ b/zero.Raven/Operations/RavenOperations.Read.cs @@ -42,6 +42,27 @@ public partial class RavenOperations : IRavenOperations } + /// + public virtual async Task> LoadAsList(IEnumerable ids) where T : ZeroIdEntity, new() + { + ids = ids.Distinct().ToArray(); + + Dictionary models = await Session.LoadAsync(ids); + List result = new(); + + foreach (string id in ids) + { + models.TryGetValue(id, out T model); + if (WhenActive(model) != null) + { + result.Add(model); + } + } + + return result; + } + + /// public virtual async Task Any(Func, IQueryable> querySelector = default) where T : ZeroIdEntity, new() { diff --git a/zero.Raven/Operations/RavenOperations.cs b/zero.Raven/Operations/RavenOperations.cs index a18c0ae2..11530104 100644 --- a/zero.Raven/Operations/RavenOperations.cs +++ b/zero.Raven/Operations/RavenOperations.cs @@ -183,6 +183,11 @@ public interface IRavenOperations /// Task> Load(IEnumerable ids) where T : ZeroIdEntity, new(); + /// + /// Get entities by ids + /// + Task> LoadAsList(IEnumerable ids) where T : ZeroIdEntity, new(); + /// /// Get entities by query ///