Шаблоны существуют, чтобы служить разработчику, а не наоборот. Вы определили вонючий код. Что-то, что тебя беспокоит. Теперь вам нужно сделать два выбора. Достаточно ли неприятный запах, чтобы удалить его? И как вы должны удалить его.
Одно предложение. Вам не нужно использовать стандартный CRUD с RIA Services. Вы можете создать служебную операцию DeleteApp, которая принимает идентификатор приложения и выполняет удаление в базе данных. Это позволит избежать необходимости выполнять отсоединение и тому подобное на стороне клиента. Это пример шаблона Transaction Script , как I , описанного в моей статье , хотя и очень элементарный пример. После этого не забудьте перезагрузить список клиентов, чтобы у вас не было устаревших данных.
В крайнем случае, вы можете захотеть взглянуть на разделение командных запросов. В этом случае у вас есть два отдельных DomainServices: одно только для чтения, а другое только для записи. Это заставляет вас быть более четкими в своих действиях и больше думать о ЧТО вы хотите сделать вместо КАК , чтобы сделать это.