diff --git a/src/ReC.Infrastructure/Options/DbModelOptions.cs b/src/ReC.Infrastructure/Options/DbModelOptions.cs index 611b0b5..4cde16a 100644 --- a/src/ReC.Infrastructure/Options/DbModelOptions.cs +++ b/src/ReC.Infrastructure/Options/DbModelOptions.cs @@ -7,4 +7,17 @@ public record DbModelOptions public Dictionary Entities { get; init; } = []; public Dictionary VirtualEntities { get; init; } = []; + + public void EnsureEntity(bool isVirtual) + { + + var cluster = isVirtual + ? VirtualEntities.ToDictionary(kvp => kvp.Key, kvp => kvp.Value as EntityBaseOptions) + : Entities.ToDictionary(kvp => kvp.Key, kvp => kvp.Value as EntityBaseOptions); + + if(cluster.TryGetValue(nameof(T), out var entityOptions)) + entityOptions.EnsureProperties(); + else + throw new InvalidOperationException($"Entity options for type '{typeof(T).FullName}' not found."); + } }