gpt4 book ai didi

c# - 继承代码库中的循环依赖

转载 作者:行者123 更新时间:2023-12-03 03:14:03 25 4
gpt4 key购买 nike

我仍在学习如何构建更大的代码库(一年前,我在学习时只处理过 3/4 个小项目的解决方案),并且我一直在尝试组织一个继承的代码库来获得摆脱循环依赖问题。

基本上,我有一个由 SQL 数据库支持的 MVC Portal 项目,该项目是使用 Entity Framework 的代码优先。我还有一个存储库项目,用于处理与某些 Azure 表的通信。这些表中的数据有些重叠,但 Azure 表不包含来自 Portal 数据库的大量信息。

当我创建某些实体时,问题就出现了,解决方案要求在门户数据库中创建它们(以便用户可以看到它们的信息),并且也在这些 Azure 表中创建,解决方案的其余部分将其用于其他实体目的。

因此,门户将数据保存到两者,这意味着我需要在 MVC 项目中使用存储库项目,但我还需要我的存储库项目能够访问 MVC 项目以获取一些未保存到 Azure 的外围信息表。

这显然是一个糟糕的设计,但从结构上来说,有没有一种方法可以解决这个问题,不需要对 Azure 表结构进行重大重构或更改来包含 Portal 数据库的每个小细节?

我想出的每一个“简单修复”都根本不是修复,只是让圆圈变得更大哈哈。自从我继承了这个设计以来,这两个表的设计一直让我感到困惑。

编辑以获得更清晰的内容

我的存储库引用了 MVC 项目,以便使用 ApplicationDbContext 与 Portal 数据库进行通信。据我了解,这不容易分成另一个项目。我的 MVC 项目引用存储库来将信息存储在 Azure 表中。这需要保持原样。

我猜这个问题是存储库做了太多事情。我开始认为我应该将它们分开,尽管这是一次相当大的返工。

JK

最佳答案

如果我错了,请纠正我,但根据我的理解,您当前想要在 Azure 存储和 SQL 存储之间交换信息。如果是这种情况,那么您应该创建一个由 SQL 和 Azure 存储继承的 BaseRepository。然后,可以在 BaseRepository 的属性中找到“外围信息”,这些属性可由其子级访问。

关于c# - 继承代码库中的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com