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
///