entity-framework - 如何使用 EF + lambda 表达式隐藏某些列(对于 WCF QueryInterceptor)

标签 entity-framework lambda wcf-data-services interceptor

我有一个带有 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/

相关文章:

asp.net-mvc - 具有双因素和盲散列的 ASP.NET MVC4

c# - Microsoft.AspNetCore.Identity.UserManager :Warning: User validation failed: InvalidUserName;InvalidEmail

c# - Entity Framework Sqlite 数据库 : NotSupportedException

.net - EF4 可以使用自定义约定从数据库生成模型

c++ - 参数包没有用 ‘...' 扩展——gcc 的另一个可变参数模板错误?

c# - Wcf数据服务投影及查询方法

c# - 所有实体上的 QueryInterceptor

java - 避免 Java 8 流中的 NoSuchElementException

c# - 替换表达式树中的类型

linq - LINQ 是否支持可组合的 "OR Queries"?