【问题标题】:Models and Entities in MVPMVP 中的模型和实体
【发布时间】:2014-05-27 13:30:37
【问题描述】:

我是 MVP 设计模式的初学者,在 MVP 三元组中,我有

型号 - AdvanceInfo

查看 - AdvanceForm

演讲者 - AdvancePresneter

实体类Advance如下。

 public class Advance
{
    public int AdvanceID { get; set; }
    public decimal AdvanceAmount { get; set; }
    public DateTime AdvanceEnteredDate { get; set; }
    public DateTime AdvanceProcessDate { get; set; }
}

那么我的模型应该如下...

class AdvanceInfo 
{
    public int AdvanceID  { get { return Advance.AdvanceID; } }
    public decimal AdvanceAmount { get { return Advance.AdvanceAmount; } set { Advance.AdvanceAmount = value; } }
    public DateTime AdvanceEnteredDate  { get { return Advance.AdvanceEnteredDate; } set { Advance.AdvanceEnteredDate = value; } }

    public int EmployeeID { get; set; }
    public string NameWithInitials { get; set; }
    public string BankAccountName { get; set; }
    public string BankAccountNumber { get; set; }

    public Advance Advance = new Advance();
}

否则……

class AdvanceInfo 
{
    public int AdvanceID { get; set; }
    public decimal AdvanceAmount { get; set; }
    public int EmployeeID { get; set; }
    public string NameWithInitials { get; set; }
    public string BankAccountName { get; set; }
    public string BankAccountNumber { get; set; }
    public DateTime AdvanceEnteredDate { get; set; }
    public DateTime AdvanceProcessDate { get; set; }

}

注意: * 我也在DeductionInfo 类中使用实体类Advance 作为聚合类。 * 我没有使用任何框架,如 EF。只有VS。 (因为这是学术目的项目)

我希望我的问题很清楚;实际上我想知道的是如何使用实体类来构建模型?或者我们可以单独使用模型类吗?

【问题讨论】:

    标签: c# .net winforms oop mvp


    【解决方案1】:

    第二种方法更好。模型不应与实体模型耦合。您需要将实体模型的每个属性映射到模型 (AdvanceInfo)。这可以通过一些代码手动完成

    Advance entityModel = new Advance();
    
    AdvanceInfo viewModel = new AdvanceInfo()
    {
        AdvanceAmount = entityModel.AdvanceAmount,
        AdvanceEnteredDate = entityModel.AdvanceEnteredDate
        // etc.
    };
    

    或者您可以使用像 AutoMapper 这样的框架来为您进行映射。

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      相关资源
      最近更新 更多