Мое приложение использует бизнес-уровень, который вызывает хранилище, использующее linq to sql.
У меня есть класс Item, который имеет свойство типа enum и свойство ItemDetail.
Мне нужно реализовать метод удаления, который:
(1) всегда удаляйте элемент
(2) если item.type имеет тип XYZ, а ItemDetail не равен NULL, также удалите ItemDetail.
Мой вопрос: где должна быть эта логика?
Если у меня это есть в моей бизнес-логике, которую я бы предпочел, это включает два отдельных вызова репозитория, каждый из которых использует отдельный текст данных. Я должен был бы обернуть оба вызова - System.Transaction, которая (в sql 2005) превращается в распределенную транзакцию, которая не идеальна.
Я могу переместить все это в один вызов репозитория, и транзакция будет неявно обрабатываться текстом данных, но я чувствую, что это действительно бизнес-логика, поэтому она не относится к репозиторию.
Мысли
Carrie