使用WCF数据服务忽略属性的最佳方法

时间:2012-01-20 09:36:46

标签: entity-framework-4 properties wcf-data-services

我正在使用ASP.NET MVC4(EF代码优先)和WCF ADO.NET数据服务2011年10月CTP。我有一个问题 - 我不知道如何忽略敏感属性(如电子邮件)。

我尝试使用ADO.NET实体数据模型(.edmx)并找到敏感属性的声明:

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String MySensitiveProperty
{
    get
    {
        return _MySensitiveProperty;
    }

并更改getter:

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String MySensitiveProperty
{
    get
    {
        return "No data here!";
    }

我的问题是否有更好更简单的解决方案?

2 个答案:

答案 0 :(得分:2)

您可以使用IgnoreProperties属性。只需使用此属性修饰您的类,并将属性名称列表传递给它。这些属性不会暴露给数据服务。见here

答案 1 :(得分:1)

在这种情况下,为什么要公开该财产?一旦你这样做,你就说你的应用程序(不是你的应用程序的一部分)永远不需要电子邮件属性。在这种情况下,从EDMX中映射的实体中删除属性,它将永远不可访问。