【发布时间】:2011-01-25 10:09:34
【问题描述】:
我是 WCF 的新手。我的 Web 项目有一个 ADO.NET 实体数据模型(又名 EF edmx),它的实体容器名称为 JobSystemEntities。
我创建了一个简单的 oData WCF 数据服务,它使用 JobSystemEntities,效果很好:
public class JobService : DataService<JobSystemEntities>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Jobs", EntitySetRights.ReadSingle);
}
但是,这会暴露 Job 的所有属性。我想隐藏敏感数据,即 Job 表的 Cost 字段/属性/列。
【问题讨论】:
-
最简单的方法是在您的 EF 模型中隐藏该属性 - 例如永远不要使用/显示。你能做到吗?或者您是否可以仅为您的 OData 服务创建一个自定义 EF 模型,并在该自定义模型中的“作业”实体中隐藏该属性?
-
我在网站中使用 Cost 字段,所以它需要在 EF 模型中。您建议为 oData 服务创建第二个 EF 模型是可能的,但我很惊讶没有其他方法可以做到这一点?