2012-03-30 7 views
2

問題は、我々はPersonエンティティがあるとしましょう :エンティティをきれいに保つ方法はありますか?

public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public bool IsAdmin { get; set; } 
} 

はかなり簡単、何も特別なことはここを参照してくださいしないように。このエンティティがあるので、そのエンティティにデータを入力します。私たちは新しい「人」をつくるつもりです。私たちは、このエンティティを私たちの見解に戻すことができるので、データで埋めて全体を持続させることができます。しかし、これは複数の問題につながります:

おそらく、ユーザーが自分のIDを選ぶことを望まないでしょう。 パスワードを確認する必要があるので、2つのパスワードフィールドが必要になることがあります。 管理者になるかどうかをユーザーが選択できないようにしたい(ただし、クールな実験につながる可能性があります) データベース(したがってエンティティ)を変更する場合、フォームは私たちが最初に意図したものとは異なっています。

+0

+1 - 私は来週までに回答する必要があります。それはPersonから継承する場合ですか? – SkonJeet

+0

@未知数:コードブロックがあり、うまく書式を設定したい場合は、各行の先頭に4つのスペースを入れます。逆引き引用符は、インラインコメント用です。 –

+1

あなたが何を求めているのか正確には分かりません。 – Gabe

答えて

0

ビューモデルでエンティティをカプセル化します。ビューモデルは、ビューによって特に必要とされる追加のフィールドと動作を持つエンティティを補足します。この場合、パスワード確認フィールドと関連ロジックが組み込まれます。話している何UO

1

あなたはViewのモデルオブジェクトを持っている必要があり、一般的にWPF

で使用MVVMパターンです:ViewModelに とモデルオブジェクトModel用:モデル

それカプセル化することができますViewModelのように

public class PersonViewModel 
{ 
    Person _person = new Person(); 
    public string PasswordUser {get;set;} 
    public string PasswordConfirm {get;set;} 

    public string Name 
    { 
    get{ return _person.Name};  //I assume Person has a Name property 
    set {_person.Name = value; } 
    } 

    ... 
    .... 

} 
+0

これは解決策ですが、たくさんのコードを書く必要があります。ない? – X181

+0

[this](http://stackoverflow.com/questions/3564181/code-generator-for-wrapper-classes)が役に立つかもしれません。 – Tigran

関連する問題