public bool Equals(IReference <TKey, TEntity> other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(EqualityComparer <TKey> .Default.Equals(Id, other.GetKey())); }
public static Task <TEntity> GetObjectAsync <TKey, TEntity>(this IReference <TKey, TEntity> reference, IEntityStorage store = null) where TEntity : class { if (reference == null) { return(null); } var result = reference as TEntity; if (result != null) { return(Task.FromResult(result)); } if (store == null) { throw new InvalidOperationException("Requires recourse to data storage"); } return(store.Collection <TEntity>().GetByKeyAsync(reference.GetKey())); }