如何在API中处理simmilar模型

时间:2016-09-12 08:24:41

标签: c# .net asp.net-web-api asp.net-web-api2

目前,我正在开发一个将由移动和Web应用程序使用的API。我遇到的一个问题是我有太多的simmilar dto模型。例如,请考虑以下内容:

Winium
我经常使用的。现在,我需要这个模型的另一种变体,如下所示:

public class DeviceModel
{
    public int DevicesID { get; set; }
    public string DeviceUID { get; set; }
    public string MACAddress { get; set; }
    public bool Allowed { get; set; }
    public UserModel Owner { get; set; }
}

处理此类相似模型的最佳做法是什么?是否有2个甚至三个这样的DTO彼此相似?

1 个答案:

答案 0 :(得分:2)

您可以创建一些具有公共属性的基础模型。指定的模型可以从它们继承。当然,只有在这种情况下,属性是非常常见的。它还将简化维护。

在您的情况下(我会将DeviceModelVariation命名为DeviceModelBase,因为它包含所有“' base'”字段:

public class DeviceModelBase
{
    public int DevicesID { get; set; }
    public string DeviceUID { get; set; }
    public string MACAddress { get; set; }
}

public class DeviceModel : DeviceModelBase
{        
    public bool Allowed { get; set; }
    public UserModel Owner { get; set; }
}