private bool CheckPresenceValue(RelationInfo info, Row row) { if (!ReferenceEquals(null, info.PresenceField)) { if (!(info.PresenceField is BooleanField) && info.PresenceValue is Boolean) { if (info.PresenceField.IsNull(row) == (bool)info.PresenceValue) return false; } else { var newRow = row.CreateNew(); info.PresenceField.AsObject(newRow, info.PresenceField.ConvertValue( info.PresenceValue, CultureInfo.InvariantCulture)); if (info.PresenceField.IndexCompare(row, newRow) != 0) return false; } } return true; }