我有一个带有 WCF OData 服务的 Web 应用程序。我有一个名为 Guest 的模型,它具有一些属性:Id、FullName、Username、Email...
WCF 数据服务的工作方式类似于提要,所以我想隐藏电子邮件列,但我不知道该怎么做。
public Expression<Func<Guest, bool>> OnQueryGuests()
{
if (!IsAuthenticated())
return c => c________;//what should return here???
}
我的临时解决方案是为所有未登录的用户禁用该服务。
最佳答案
使用 Entity Framework ,您需要将结果投影到子类中,然后告诉 WCF 数据服务该子类是实体。通过拦截 IQueryable 这一切都是可能的。这是一些工作,但在 Derrick VanArnam MS 的帮助下 Example我能够创建一个表达式拦截器来修改表达式树以删除不需要的属性绑定(bind)。
关于entity-framework - 如何使用 EF + lambda 表达式隐藏某些列(对于 WCF QueryInterceptor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911662/