【问题标题】:vs 2013 complains for a data layer direct referencevs 2013 抱怨数据层直接引用
【发布时间】:2014-01-11 13:31:45
【问题描述】:

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

这是错误

错误 1 ​​定义了类型“BJ.Equinox.DAL.Entities.BusinessArea” 在未引用的程序集中。您必须添加对 程序集'BJ.Equinox.DAL,版本=1.0.0.0,文化=中性, PublicKeyToken=null'。 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


据我了解,从不引用数据层,仅引用业务层。

请帮忙

祝福大家。

【问题讨论】:

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


    【解决方案1】:

    如果您在 MVC4 项目中使用在 DAL 中定义并通过 BL 交付的类型,则 MVC4 项目必须引用 DAL。

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

    【讨论】:

      【解决方案2】:

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

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多