有没有办法保持你的实体干净?

时间:2012-03-30 10:37:27

标签: c# entity-framework

问题所在 假设我们有一个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个密码字段。 我们不希望用户选择是否想成为管理员(尽管这可能导致一些很酷的实验) 如果我们要更改我们的数据库(以及实体),我们的表格将依赖于与我们预期不同的实体。

2 个答案:

答案 0 :(得分:1)

你所谈论的是一种MVVM模式,常用于WPF

您应该拥有View的模型对象: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; }
  }

  ...
  ....

}

答案 1 :(得分:0)

将实体封装在视图模型中。视图模型使用视图特别需要的其他字段和行为来补充实体。在这种情况下,它将包含密码确认字段和相关逻辑。