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

Entity framework 4 使用WCF数据服务忽略属性的最佳方法,entity-framework-4,properties,wcf-data-services,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()] 公共全局::System.String MySensitiveProperty

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

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

[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=true)]
[DataMemberAttribute()]
公共全局::System.String MySensitiveProperty
{
得到
{
return\u MySensitiveProperty;
}
以及更改getter:

[EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=true)]
[DataMemberAttribute()]
公共全局::System.String MySensitiveProperty
{
得到
{
返回“此处无数据!”;
}

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

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

您可以使用IgnoreProperties属性。只需使用该属性装饰您的类,并向其传递属性名列表。这些属性将不会向数据服务公开。请参见我只想隐藏它,而不是删除它。向用户隐藏电子邮件地址,但在需要发送广告时将其保存。在这种情况下,您需要两个不同的实体-一个映射到不提供电子邮件的数据库视图。