【发布时间】:2013-04-04 23:52:50
【问题描述】:
我是一个 15 岁的应用程序的新手。团队负责人已开始使用 Entity Framework + 以及现有的 WebForms + Sprocs。
EF 中的一些 POCO(域实体)具有包含对 DbContext 的引用的属性,通常是对象图顶部的父对象。当我尝试编写测试时,我不断收到 Context Disposed 异常。
public EmployerService(int UserID, Entities entities) // business layer
{
this.UserID = UserID;
_entities = entities;
}
internal Employer CreateEmployer()
{
Employer employer = _entities.Employers.Create();
employer.MasterItem = _entities.MasterItems.Create();
employer.MasterItem.LastModified = _entities.ItemLastModifieds.Create();
employer.DBContext = _entities;
...
return employer;
}
更重要的是,项目引用不干净。 POCO 引用数据和业务逻辑层。我正在构建一个案例以从 POCO 对象中获取 DbContext 引用,但我的搜索才刚刚开始。
所以我的问题是,哪些设计原则支持或拒绝从 POCO 引用 DAL 层?
【问题讨论】:
-
这看起来还没有真的不好。看起来它更像是一个上下文生命周期问题(上下文存在时间太长)。域实体中是否也有对上下文的引用? (就像
Employer本身一样)。 那会很糟糕。
标签: entity-framework unit-testing c#-4.0 design-patterns