public Exceptional<Boolean> CheckUniqueConstraint(GraphDBType myGraphType, IEnumerable<GraphDBType> myParentTypes, Dictionary<AttributeUUID, IObject> toBeCheckedForUniqueConstraint) { var UniqueAttributes = myGraphType.GetAllUniqueAttributes(true, _DBContext.DBTypeManager); if (!UniqueAttributes.IsNullOrEmpty()) { var dbObjectAttributes = (from aAttribute in toBeCheckedForUniqueConstraint where UniqueAttributes.Contains(aAttribute.Key) select aAttribute); if (dbObjectAttributes.Count() != 0) { AAttributeIndex AttrIndex = null; foreach (var PType in myParentTypes) { AttrIndex = PType.FindUniqueIndex(); if (AttrIndex != null) { var toBeCheckedIdxKey = GenerateIndexKeyForUniqueConstraint(toBeCheckedForUniqueConstraint, AttrIndex.IndexKeyDefinition, myGraphType); if (AttrIndex.Contains(toBeCheckedIdxKey, PType, _DBContext)) { return new Exceptional<Boolean>(new Error_UniqueConstrainViolation(PType.Name, AttrIndex.IndexName)); } } } } } return new Exceptional<Boolean>(true); }