Прежде всего, это мой первый вопрос переполнения стека, поэтому заранее прошу прощения, если я ошибаюсь!
Я работаю над созданием конечной точки службы для базы данных CRM, используемой для внутреннего использования.Несколько приложений хотят читать и записывать в эту базу данных, поэтому использование службы WCF кажется лучшим подходом.
Я начал с использования Entity Framework для ORM, CSLA для уровня бизнес-логики и стандартной службы WCF для связи.с клиентскими приложениями.Все шло хорошо, пока я не взглянул на WCF Data Services и не соблазнился прекрасным интерфейсом REST, простотой использования клиентами AJAX и радостью от использования новых технологий!
Теперь я заменил большие частислужбы WCF с одной службой данных WCF, которая напрямую предоставляет модель Entity Framework, минуя уровень CSLA.Это прекрасно работает для операций только для чтения, но я не могу выполнять другие функции CRUD без некоторой бизнес-логики.
Я искал перехватчики, и я, конечно, могу поместить туда бизнес-логин, но на самом деле хочу перехватить POST/ Добавить операцию, сопоставить значения с соответствующим классом CSLA BusinessBase и позволить этому выполнить всю проверку и окончательное сохранение в базе данных.Я попробовал это, и хотя объект CSLA работает как задумано, базовая инфраструктура службы данных WCF также сохраняет свою версию, поэтому я получаю две записи в БД.
Поэтому у меня есть несколько вопросов:
1) Могу ли я полностью перехватить запрос на изменение, позволить собственным бизнес-объектам обработать его, а затем отменить службу данных WCF без исключения?
2) Существует ли лучший / стандартный подход для добавления уровней бизнес-логикив стек службы данных WCF?Я пока не смог найти его.
Заранее спасибо,
Дейв