【发布时间】:2011-05-20 13:36:42
【问题描述】:
我在使用 Microsoft MVC 时遇到以下问题 - 或者更确切地说,迫切需要宝贵的建议。来自客户端的某个动作导致创建:
- 表备注中的备注
- HourRegistrations 表中的条目
- 工单变更日志中的条目
我为业务操作使用服务层,为 CRUD 操作使用存储库。问题是我有时需要连接来自不同 DataContexts 的对象,所以我想我使用了有缺陷的设计。最近我们开始从我们的控制器和存储库中删除所有业务逻辑,这是我遇到的第一件事。
例子:
BLogic.AddRemarks(Ticket t, ...)
{
Remark r = _remarksRepository.Create();
r.Ticket = t;
_remarksRepository.Add(r);
_remarksRepository.Save();
}
这会触发 kBOOM,因为票证是使用存储库在控制器中获取的。所以 Remark r 和 Ticket t 不共享相同的数据上下文。
我可以更改方法的签名并提供一个 int TicketId,但这感觉不对。此外,我随后会遇到类似的问题。
我的存储库是在服务类的构造函数中创建的。也许我必须在方法开始时创建它们?即使这样,我也必须经常传输 Id 而不是真正的对象。
【问题讨论】:
标签: asp.net-mvc linq design-patterns repository