2012-10-25 91 views
1

在N层应用程序中,我的网站连接到Web引用以访问业务层逻辑并获取业务层DTO。例如,BL可能会提供一个汽车的定义:在我的ASP.NET MVC网站中,我需要创建自己的汽车模型对象。 (也许添加/删除一个字段或通过数据注释添加验证)。如何处理从业务层到表示层的名称冲突映射?

因为我的名字空间Car中已经有一个对象,所以我需要命名我的模型对象。尽管如此,对象实际上并没有更好的名称。有没有更简单的方法来处理这些名称冲突?另外,我可以完全限定模型,但这似乎并不理想。

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

回答

1

我已经看到人们简单地将Model附加到这些类中,当他们在他们的MVC应用程序中处理它们时。在你的情况下,这个类将是CarModel

至于扩展对象,我不会推荐将业务层对象泄漏到表示层,因为如果数据发生更改,稍后会遇到麻烦。不必在每个地方使用数据来更改演示代码,只需要在从CarCarModel的转换中更改演示代码将更加容易。

+0

我目前的解决方法就是将DL模型添加到DL对象中。问题是它有点减少了代码的可读性,再加上考虑到应用程序的性质,“CarModel”与汽车模型(即Murcielago)模糊不清/混淆。 –

+0

您可以附加'ViewModel',但开始有点冗长。您的表示层中是否有大量复杂的代码? – Kazetsukai

相关问题