我有一个服务层,它请求业务层执行某些功能。业务层访问使用实体框架的存储库。服务层有一个工作单元对象,它维护对 EF 的 ObjectContexts 的引用。当业务层被调用时,服务层告诉工作单元保存它在事务内部所做的更改。
这一切都很好,我可以让多个存储库在一个事务中与多个 edmx 文件通信。
系统中的规则之一是 EF 的东西必须留在存储库层(除了 UoW 中的上下文)。
但我的设计有一个重大缺陷。
在业务层的一个函数中,我想调用一个存储库函数来在数据库中创建一条新记录。然后,在业务层的同一功能中,我想将另一条记录指向新记录。EF 实体对业务层不可用,因为它还没有返回到服务层,但我没有新记录的 id,然后我可以用它来更新其他记录。
关于我应该如何改变我的设计以支持这一点的任何建议?