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