2012-01-20 13 views
1

私はASP.NET MVC4(EFコードファースト)をWCF ADO.NET Data Service October 2011 CTPで使用しています。私には問題があります。私は機密性の高いプロパティ(電子メールなど)を無視する方法がわかりません。WCFデータサービスでプロパティを無視する最良の方法

私は(.edmx)ADO.NETエンティティデータモデルを使用してみましたし、敏感なプロパティの宣言を見つける:

[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!"; 
    } 

は、任意のより良いあり私の問題のための簡単な解決策?

答えて

1

そのような場合、なぜそのプロパティを公開しますか?このようにすれば、アプリケーション(アプリケーションの一部ではない)が電子メールのプロパティを必要としないということができます。そのような場合は、EDMXにマップされたエンティティからそのプロパティを削除してください。

+0

私はちょうどそれを非表示にしたい、それを削除しない。ユーザーからメールアドレスを非表示にしますが、広告主を送信する必要がある場合は保存します。 – nvcnvn

+0

このような場合、2つの異なるエンティティが必要です.1つは電子メールを提供しないデータベースビューにマッピングされます。 –

2

IgnoreProperties属性を使用できます。単にこの属性でクラスを修飾し、プロパティ名のリストを渡します。これらのプロパティはデータサービスに公開されません。 here

関連する問題