У меня есть две таблицы, A и B, и простая таблица X, которая поддерживает связь между ними. X содержит AID и BID в качестве первичного ключа.
Я использую Linq-to-Sql для вставки отношения вроде:
public void InsertRelationship(int y, int z) {
DataContext.X.InsertOnSubmit(new x { AID = y; BID = z });
}
Проблема заключается в том, что в экстремальных условиях могут быть вызваны два вызова InsertRelationship (), поэтому возникает исключение из-за повторяющейся записи. Это не имеет значения для меня, так как я знаю, что отношения тогда существуют, поэтому я игнорирую исключение.
Можно ли игнорировать исключение в этом случае или это все еще плохая практика? Должен ли я проверить, что отношения не существуют до вставки? Как это повлияет на производительность?
Обновление
Двойного вызова InsertRelationship () нельзя избежать. Это веб-приложение, поэтому я не могу остановить пользователя, открывающего два отдельных окна и вызывающих метод, например, дважды. Метод не будет вызываться дважды через обычное взаимодействие с пользователем, но я программирую здесь в крайнем случае. Процент дубликатов, вероятно, будет очень низким, но я не могу быть уверен в точных цифрах.