// checks whether a given globally identified entities from a given document are equal or not private bool AreEqual <TEntity>(IStonDocument document, IStonEntityEquivalenceComparer comparer, string id1, string id2) where TEntity : class, IStonEntity { var e1 = id1 != null?document.GetGlobalEntity(id1) : null; var e2 = id2 != null?document.GetGlobalEntity(id2) : null; if (typeof(TEntity) == typeof(IStonValuedEntity)) { return(comparer.Equals(e1 as IStonValuedEntity, e2 as IStonValuedEntity)); } else if (typeof(TEntity) == typeof(IStonSimpleEntity)) { return(comparer.Equals(e1 as IStonSimpleEntity, e2 as IStonSimpleEntity)); } else if (typeof(TEntity) == typeof(IStonComplexEntity)) { return(comparer.Equals(e1 as IStonComplexEntity, e2 as IStonComplexEntity)); } else if (typeof(TEntity) == typeof(IStonReferenceEntity)) { return(comparer.Equals(e1 as IStonReferenceEntity, e2 as IStonReferenceEntity)); } else { return(comparer.Equals(e1, e2)); } }
/// <summary> /// Creates a new STON member binding keys equivalence comparer, using a given entities equivalence comparer for index key parameters. /// </summary> /// <param name="indexParameterComparer">The entities equivalence comparer used for index key parameters.</param> public StonBindingKeyEquivalenceComparer(IStonEntityEquivalenceComparer indexParameterComparer) { if (indexParameterComparer == null) { throw new ArgumentNullException("indexParameterComparer"); } IndexParameterComparer = indexParameterComparer; }