2012-03-13 100 views
2

背景:
我有一個WCF數據服務通過實體框架連接到SQL Server。在路上轉換WCF數據服務(OData)數據

我的一個表有一個類型爲varbinary的列。它保存着一串XML數據,這些數據應該在進入數據庫的路上被壓縮(通過不同的服務)。

我的問題:
我希望能夠取消這個壓縮varbinary數據,當客戶端通過WCF數據服務(OData的)查詢時將其更改爲XML或字符串對象。

這可能嗎?如果是這樣,我會在哪裏插入?

回答

0

這裏

http://msdn.microsoft.com/en-us/library/dd744842.aspx

當添加changeInterceptor到實體叫你將有機會獲得其狀態,並根據其狀態,你可以執行你的任務所示。你可以利用ChangeInterceptors中的OData示例這裏是我的一個實體的變更攔截器,「術語」

[ChangeInterceptor("Term")] 
public virtual void OnChangeTerm (Term reqObj, UpdateOperations operations){ 
    OnChangeInterceptor<Term>(reqObj, operations, CurrentDataSource); 
} 


protected virtual void OnChangeInterceptor<TEntity>(TEntity entity, UpdateOperations operations, IDataContext currentDataSource) 
{ 
    switch (operations){ 
        case UpdateOperations.Add: 
         ServiceController.OnAddEntityRequest(entity, currentDataSource); 
         break; 
        case UpdateOperations.Change: 
         ServiceController.OnUpdateEntityRequest(entity, currentDataSource); 
         break; 
        case UpdateOperations.Delete: 
         ServiceController.OnDeleteEntityRequest(entity, currentDataSource); 
         break; 
    } 

}