vs 2013抱怨数据层直接引用

时间:2014-01-11 13:31:45

标签: c# asp.net-mvc-4 visual-studio-2012 3-tier

我创建了一个三层项目(DAL - BL - MVC4)。 MVC引用了BL,因此BL引用了DL但是我在Controller中遇到错误,因为它要求DAL引用。

这是错误

  

错误1定义类型'BJ.Equinox.DAL.Entities.BusinessArea'   在未引用的程序集中。您必须添加引用   assembly'BJ.Equinox.DAL,Version = 1.0.0.0,Culture = neutral,   公钥=空”。 C:\ Users \ hernan \ Documents \ Visual Studio   2012 \ Projects \ BJ.Equinox.OfficialWebSite \ BJ.Equinox.Web \ BJ.Equinox.Web \ Controllers \ HomeController.cs 18 13 BJ.Equinox.Web


根据我的理解,一个人永远不会引用数据层,只是业务层。

请帮忙

祝福所有人。

2 个答案:

答案 0 :(得分:0)

如果你在MVC4项目中使用了一个类型,它在DAL中定义,通过BL传递,那么MVC4项目必须引用DAL。

您应该考虑将模型移动到单独的共享程序集中,所有3个层都可以引用它们。然后所有三个层都知道类型,但mvc4不需要知道DAL。 mvc4层只会从BL获得一个填充模型。

答案 1 :(得分:0)

将实体移动到像@scheien建议的第四个项目,或者为BL中的数据定义新的简化模型。您始终可以使用映射组件在这些对象之间移动值,如AutoMapper。

此致