背景
我有一个通过实体框架连接到SQL Server的WCF数据服务。
我的一个表有一个类型为varbinary的列。它持有一个XML数据字符串,应该在进入数据库的过程中进行压缩(通过不同的服务)。
我的问题:
我希望能够解压缩这个varbinary数据,并在客户端通过WCF数据服务(OData)查询它时将其更改为XML或字符串对象。
这可能吗?如果是这样,我会在哪里插入?
答案 0 :(得分:0)
您可以利用Odata中的ChangeInterceptors,如下所示
http://msdn.microsoft.com/en-us/library/dd744842.aspx
当向实体调用添加changeInterceptor时,您将可以访问其状态,并根据其状态执行您的任务,例如,这里是我的某个实体的更改拦截器,“Term”
[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;
}
}