You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BL与BE懒加载时出现循环依赖问题求助

求助:实体层懒加载碰到循环依赖死胡同了

我目前的系统架构分为业务层(BL)、业务实体层(BE)和数据访问层(SQL),其中业务实体层是被业务层和数据访问层共同引用的。最近想给实体做懒加载,本来打算调用业务层的方法来填充实体里的关联数据,但遇到了循环依赖的问题:业务层依赖业务实体层,导致实体层根本没法调用业务层的方法,陷入死循环了。

相关代码情况

实体的属性定义

// 非懒加载属性
public int Id { get; set; }
public string Description { get; set; }
// 懒加载属性
private Lazy<AuditTypeEntity> _auditType = null;
public AuditTypeEntity auditType { get { return _auditType.Value; } }

写了但没法用的构造函数

我原本想在实体构造里初始化懒加载委托,但因为循环依赖的问题根本用不了——毕竟BL依赖BE,BE不能反过来调用BL的方法:

public MyEntity()
{
    _auditType = new Lazy<AuditTypeEntity>(() => BusinessLayer.GetAuditTypeById(_auditTypeId).Value);
}

补充说明:我们用ADO.NET填充实体

这里贴一段调用数据访问层的示例代码,方便大家理解我们的实体填充方式:

public static IList<Nature> GetAllNature()
{
    using (DAOManager daomanager = DAOFactory.CreateDaoManager(DataSource.DB_Belval))
    {
        return daomanager.GetNatureDAO().GetAll(BE.EnumEntity.NATURE.ANOMALY);
    }
}

内容的提问来源于stack exchange,提问作者clement

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:04:19