未解决的循环引用

Posted

技术标签:

【中文标题】未解决的循环引用【英文标题】:Unresolved circular reference 【发布时间】:2013-01-17 22:10:42 【问题描述】:

我在一个解决方案中有两个数据库项目,数据库 A 和数据库 B。它们都有像这样相互指向的查询

Select * FROM [Database A].dbo.Table 

Visual Studio 会给你一个类似 SQL04151 的警告:Procedure xyz contains an unresolved reference to an object……如果你添加一个对数据库 A 的数据库引用,这个警告会在数据库 B 中解决。

但是,仍然有来自数据库 A 的警告,抱怨对数据库 B 中某些内容的未解决引用。

如果我尝试从数据库 A 添加对数据库 B 的引用,它不会让我这样做,因为它说“无法添加对库“数据库 B”的引用。将此项目添加为引用会导致循环依赖。

所以我想我的问题是如何解决引用以便停止显示警告?

【问题讨论】:

【参考方案1】:

在 VS2010 DB 项目中,您希望为引用的数据库生成 *.DBSchema 文件。将该 DBSchema 文件添加为项目中的数据库引用。这将避免尝试指向另一个项目并创建循环引用。您可以使用带有“导入”选项的 VSDBCMD.exe 从数据库中创建文件来生成 DBSchema 文件。

您可能希望在构建时注意错误。由于这些循环引用,我们不得不多次构建/部署数据库以进行“新”构建。第一次为 DB A 删除/创建,然后创建 DB B,然后更新 DB A。如果我们不这样做,则不会创建依赖于其他数据库的对象。

【讨论】:

以上是关于未解决的循环引用的主要内容,如果未能解决你的问题,请参考以下文章

【OC梳理】循环引用及解决

Spring 循环引用AbstractFactoryBean 如何解决循环依赖

iOS 循环引用解决方案

如何解决循环引用?

【OC语法】block的循环引用

03 FastJson 解决循环引用