diff --git a/src/GameCult.Mesh/CultMesh.cs b/src/GameCult.Mesh/CultMesh.cs index bdc1dbdc..ef41d1f7 100644 --- a/src/GameCult.Mesh/CultMesh.cs +++ b/src/GameCult.Mesh/CultMesh.cs @@ -3370,20 +3370,6 @@ namespace GameCult.Mesh $"CultMesh document '{key.Value}' was not found as {typeof(TDocument).FullName}."); } - // A database serves only what its shards own; the cache behind it may hold more. - private static bool DatabaseServes(CultNetDatabase database, object document, CultRecordKey key) - { - try - { - database.ResolveShard(CultDocumentRegistry.Shared.GetRequired(document.GetType()).SchemaId, key); - return true; - } - catch (CultNetUnownedSchemaException) - { - return false; - } - } - private static async Task ReadDatabaseDocumentRequiredAsync( CultNetDatabase database, CultRecordKey key) @@ -3393,8 +3379,9 @@ namespace GameCult.Mesh if (document != null) return document; - var untyped = database.Cache.Get(key); - if (untyped != null && IsSameCultDocumentSchema(untyped.GetType()) && DatabaseServes(database, untyped, key)) + // Through the database, which serves only what its shards own; the cache behind it may hold more. + var untyped = await database.GetAsync(key).ConfigureAwait(false); + if (untyped != null && IsSameCultDocumentSchema(untyped.GetType())) return ConvertUntypedDocument(untyped); throw new KeyNotFoundException(