【问题标题】:Best way to ignore properties with WCF Data Service使用 WCF 数据服务忽略属性的最佳方法
【发布时间】:2012-01-20 09:36:46
【问题描述】:

我将 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;
    }

并更改吸气剂:

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

对于我的问题有更好更简单的解决方案吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我只是想隐藏它,而不是删除它。对用户隐藏电子邮件地址,但在需要发送广告时保存。
      • 在这种情况下,您需要两个不同的实体 - 一个映射到不提供电子邮件的数据库视图。
      猜你喜欢
      • 1970-01-01
      • 2013-12-07
      • 2012-05-22
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多