public override int GetHashCode() { unchecked { int result = 397; foreach (var property in _metaData) { if (property.Value.Value != null) result = (result * 397) ^ property.Value.Value.GetHashCode(); } return result; } } }