一个模型,多个ViewModel(?)变体

时间:2014-02-07 16:53:26

标签: c# asp.net-mvc-5 entity-framework-6

我对MVC场景很陌生,而且之前还没有处理过这样的场景。我已经环顾网络寻找一些指向正确方向的东西,但似乎没有任何东西放入我完全理解的环境中。

我不确定这是否适用于这种情况但我目前没有使用任何类型的AutoMapper。该项目使用的是MVC5 / EF6。

模型

public class Unknown
{
    public int UnknownID { get; set; }
    public DateTime ReceivedDate { get; set; }
    public int SetuptypeID { get; set; }
    public string ClientName { get; set; }
    public string RequestedBy { get; set; }
    public string ResultID { get; set; }
    public string RoutingNum { get; set; }
    public string TransAcctNum { get; set; }
    public string Company { get; set; }
    public string SettleRoutingNum { get; set; }
    public string SettleAcctNum { get; set; }
    public string BillingRoutingNum { get; set; }
    public string BillingAcctNum { get; set; }
    public string PointName { get; set; }
    public string PepApplName { get; set; }
    public int RequestTypeID { get; set; }
    public bool IsDeleted { get; set; }

    public virtual SetupType SetupType { get; set; }
    public virtual RequestType RequestType { get; set; }
}

SetupType'未知'需要所有字段

SetupType'内部'需要:

  • UnknownID
  • ReceivedDate
  • SetuptypeID
  • CLIENTNAME
  • RequestedBy
  • ResultID
  • RoutingNum
  • TransAcctNum
  • RequestTypeID
  • 请将isDeleted

SetupType'ServiceVendor'需要:

  • UnknownID
  • ReceivedDate
  • SetuptypeID
  • CLIENTNAME
  • RequestedBy
  • ResultID
  • 公司
  • SettleAcctNum
  • BillingAcctNum
  • RequestTypeID
  • 请将isDeleted

还有另一个SetupType与'Internal'具有相同的字段 还有10个其他SetupType变体

字段UnknownID,ReceivedDate,SetupTypeID,ClientName,RequestTypeID和IsDeleted都在所有SetupTypes中。

我想为每个列出一个单独的ViewModel,列出所有需要的字段与DRY主体相对应。什么是表示这些SetupTypes的好方法?

1 个答案:

答案 0 :(得分:0)

我确实认为多个ViewModel是这里的方式。如果你对违反DRY感到不舒服,你可以引入一个继承层次结构,并将公共逻辑存储在基类和特定于setuptype的逻辑中(就像你在一个派生类型中出现不同于setup type ='internal'的字段的例子)类。