服务层不应该返回ViewModel,但如果我需要返回不是Dbset的东西会怎样。我是否要创建其他实体?

时间:2016-08-11 08:52:13

标签: c# asp.net-mvc design-patterns

所以我在我的ASP.NET-MVC5应用程序中使用这种模式。

控制器< - >服务层< - >数据层< - >数据库

我使用AutoMapper在服务层的DbSet结果和控制器中的ViewModels之间进行映射。

但是如果我需要从我的服务层返回不是DbSet的自定义实体呢?我是否需要创建新实体以保持模式清洁?

例如:

DbSet

public class Customer
{
    public int CustomerID { get; set; }
    public string Name { get; set; }
    public string Phone { get; set; }
    public string Address { get; set; }
}

public class Order
{
    public int OrderID { get; set; }
    public dec Amount { get; set; }
    public int CustomerID { get; set; }
    public Customer Customer { get; set; }
}

现在,如果我的服务层中有CalculateCustomerTax(int ID)这样的内容,则此方法将返回3个值,即CustomerName,TotalTax,TotalAmount。

我想要保持这种模式的清洁,因为在服务层返回ViewModels会失败。

任何帮助将不胜感激

0 个答案:

没有答案