首先,這是我的第一個Stack Overflow問題,如果我弄錯了,請提前致歉!WCF數據服務如何添加業務邏輯或使用現有的CSLA對象
我正在爲內部使用的CRM數據庫創建服務端點。有幾個應用程序想讀取和寫入這個數據庫,所以公開WCF服務看起來是最好的方法。
我開始使用ORM的實體框架,業務邏輯層的CSLA和用於與客戶端應用程序通信的標準WCF服務。一切都很順利,直到我看了WCF數據服務,並受到可愛的REST界面的誘惑,AJAX客戶端的易用性以及使用新技術的喜悅!
我現在用單個WCF數據服務替換了大部分的WCF服務,它直接公開了實體框架模型,繞過了CSLA層。這對於只讀操作非常適用,但如果沒有某些業務邏輯,我無法執行其他CRUD功能。
我一直在尋找攔截器,我當然可以把企業登錄在那裏,但我實際上想攔截POST /添加操作,將值映射到問題的CSLA BusinessBase類,讓它做所有的驗證和最後保存到數據庫中。我已經嘗試了這一點,雖然CSLA對象按預期工作,但底層WCF數據服務框架也保留了它的版本,因此我在數據庫中獲得了兩個條目。
因此,我有幾個問題:
1)我可以完全攔截變更請求,讓我自己的業務對象處理它然後取消WCF數據服務未拋出異常?
2)是否有更好的/標準的方法來添加業務邏輯層到WCF數據服務棧?到目前爲止,我還沒有找到。
由於提前,
戴夫