我正在尝试使用带有实体框架6的WCF数据服务来设置OData服务。
我通过继承EntityFrameworkDataService
来创建我的服务,它可以很好地检索所有数据。我想在我的实体上添加一个安全层,这样就不会在OData服务上看到所有的表/字段。
我已经尝试了QueryInterceptors
,只要限制表格就可以了。无法返回有限实体(删除用户无权访问的属性)。管理员将决定哪个用户可以访问表和字段,因此我无法预先创建子实体。数据库中将有超过100个表,因此解决方案必须是通用的。
我也看了WCF Data Services ability to restrict returned fields。但是,由于我的实体上没有DataMember
/ DataContract
等也没有公开OperationContract
的地方,因此此解决方案也不合适。