如何处理从业务层到表示层的名称冲突映射?

时间:2012-10-25 03:40:10

标签: asp.net-mvc model naming-conventions 3-tier

在N层应用程序中,我的网站连接到Web引用以访问业务层逻辑并获取业务层DTO。例如,BL可以提供汽车的定义:

public class Car() {
    public string Make { get; set; }
    public string Model { get; set; }
    . . .
}

在我的ASP.NET MVC网站中,我需要创建自己的Car模型对象。 (可能是添加/删除字段或通过数据注释添加验证)。

因为我的命名空间中已经有一个名为Car的对象,所以我需要将我的模型对象命名为其他东西。但是对象确实没有更好的名称。有没有更简单的方法来处理这些名称冲突?或者,我可以完全限定模型,但这似乎并不理想。

另一种可能性,我可以使用BL中的对象,但是扩展它以便我可以添加数据注释以进行验证吗?

1 个答案:

答案 0 :(得分:1)

我看到人们在MVC应用程序中处理这些类时只需将Model附加到这些类中。在您的情况下,该课程将为CarModel

至于扩展对象,我不建议将业务层对象泄漏到表示层,因为如果数据发生更改,您将在以后遇到麻烦。您无需在数据的每个位置更改演示文稿代码,只需在从CarCarModel的转换中进行更改即可。