/// <inheritdoc />
 public bool TryGetRaw(string key, out object value)
 {
     value = default;
     return((Metadata?.TryGetRaw(key, out value) ?? false) ||
            PropertyMetadata <TDocument> .For((TDocument)this).TryGetRaw(key, out value) ||
            (BaseMetadata?.TryGetRaw(key, out value) ?? false));
 }
 /// <inheritdoc />
 public bool TryGetRaw(string key, out object value)
 {
     value = default;
     return((!IDocument.Properties.Contains(key) && Metadata?.TryGetRaw(key, out value) == true) ||
            PropertyMetadata <TDocument> .For((TDocument)this).TryGetRaw(key, out value) ||
            (BaseMetadata?.TryGetRaw(key, out value) ?? false));
 }