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