我创建了一个三层项目(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
根据我的理解,一个人永远不会引用数据层,只是业务层。
请帮忙
祝福所有人。
答案 0 :(得分:0)
如果你在MVC4项目中使用了一个类型,它在DAL中定义,通过BL传递,那么MVC4项目必须引用DAL。
您应该考虑将模型移动到单独的共享程序集中,所有3个层都可以引用它们。然后所有三个层都知道类型,但mvc4不需要知道DAL。 mvc4层只会从BL获得一个填充模型。
答案 1 :(得分:0)
将实体移动到像@scheien建议的第四个项目,或者为BL中的数据定义新的简化模型。您始终可以使用映射组件在这些对象之间移动值,如AutoMapper。
此致