public override bool Equals(object obj) {
if (obj == null) {
return false;
}
var otherIndex = obj as Index;
if (otherIndex == null) {
return false;
}
return this.Name == otherIndex.Name && this.IsUnique == otherIndex.IsUnique
&& this.Columns.SequenceEqual(otherIndex.Columns, new IndexColumnComparer()) && this.Map.Type.Name == otherIndex.Map.Type.Name;
}