/// <summary> /// Add a relationship between two objects. This is handled as a many to many relationship and will persist in both directions. /// You can retrieve this from either side T or U using the GetRelatedKeysFor method /// </summary> /// <typeparam name="T">The type of the sorce object</typeparam> /// <typeparam name="U">The type of the related object</typeparam> /// <param name="store">The underlying store</param> /// <param name="keyT">The key of the source object</param> /// <param name="keyU">The key of the related object</param> /// <param name="transformer"></param> public static void AddRelationship <T, U>(this IKVStore store, Key keyT, Key keyU, ITypeStringTransformer transformer = null) { var tr = transformer ?? new ForeignKeyTypeStringTransformer(); store.AppendToCollection(tr.TransformFor <T, U>(keyT), keyU.Value); store.AppendToCollection(tr.TransformFor <U, T>(keyU), keyT.Value); }
public void AppendToCollection <T>(Key key, T value) { _logger.LogStoreCall("AppendToCollection", key, value); try { _store.AppendToCollection(key, value); } catch (Exception ex) { _logger.LogError(ex); } }
public void AppendToCollection <T>(Key key, T value) { _store.AppendToCollection(_GetTransformedKey <T>(key), value); }
public void AppendToCollection <T>(Key key, T value) { _writeActions.Enqueue(() => _store.AppendToCollection(key, value)); }
public void Add(Key key, Key p1) { _store.AppendToCollection(key.Value, p1); }