问题标签 [object-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3942 浏览

c# - ASP.Net Core 1.1 解决方案中检测到自引用循环

虽然我在这里关注了这篇文章,但我一直收到错误消息

检测到类型为“...”的属性“...”的自引用循环。路径“[4]....[0]”。

我已将此添加到我的Startup.cs

还有什么可能导致参考循环错误?

编辑:在评论中回答问题......受影响的课程是:

0 投票
1 回答
397 浏览

entity-framework - 防止 EF 保存完整的对象图

我有一个模型如下

我也有如下的数据库上下文

然后我使用下面的代码调用数据库

我希望这段代码只保存课程对象,而不是保存课程和部分的完整图表,但会发生的是它保存了完整的图表。我如何防止它这样做?

0 投票
0 回答
377 浏览

c# - 使用 Automapper 从 DTO 映射到具有父子关系的对象图

我正在尝试确定 Automapper 是否是从基本 DTO 集合构建父/子对象图的可行选项,并且我无法找到我希望的那种方法的示例。

例如,我有以下 DTO 类。

我有一个返回 DTO 集合的存储库。例如,范围内的课程集合、这些课程的注册集合、这些注册的学生集合。

然后我有这个对象图类:

我希望能够在 Automapper 配置中抛出 DTO 集合并取回 Course 对象的集合,其中填充了属性和子对象属性。Automapper 是否适合这个,任何人都可以给我任何指示或工作示例吗?谢谢。

更新澄清:

我试图让 Automapper 做的基本上是这样的:

给定一组集合,例如 CourseDTO 列表、EnrolmentDTO 列表和 StudentDTO 列表

首先将 CourseDTO 列表中的对象映射到 Course 列表,即对象图 'root'

然后将 EnrolmentDTO 列表中的对象映射到对象图中,匹配 CourseID 值以确保与特定课程相关的注册成为映射的子对象。

然后将 StudentDTO 列表中的对象映射到 Enrollment 对象图中,以确保映射到与该注册相关的学生。

0 投票
1 回答
36 浏览

snakeyaml - 防止 SnakeYaml 中大对象图的“序列化整个世界”问题

我们有一个非常大的对象图(在正常程序执行期间通过 DataNucleus ORM 从数据库延迟加载,所以通常没有问题)但我们只想用 SnakeYaml 序列化其中的一小部分——只是类的一小部分。

这些类之一与其他类之间存在关系,最终“到达”对象图中的大多数其他对象,这导致将几乎所有对象从数据库拉入 YAML 序列化流 - 经典的“序列化整个世界” “当您拥有数百万个您可以想象的可到达对象时,这个问题不会很好地结束:)

我发现了 SnakeYaml 'Representer' 类,它看起来像一个钩子,可以让您指定“不”来序列化特定 bean,但当它遇到该 bean 时,它看起来不像对象图导航过程中的断路器。它不会为该 bean 编写 YAML 输出,但 SnakeYaml 似乎会继续导航对象图经过该 bean。

有没有办法让 SnakeYaml 在序列化对象图时不导航到特定的 bean?

0 投票
1 回答
71 浏览

orm - 在 Intershop7 中通过 ObjectGraph 绑定管理器

我们创建了一个自定义对象管理器,我们希望将其绑定到实现,以便我们可以将用于自定义对象处理的管理器注入到我们的盒式管道中。

我们已经创建了 Mgr 接口和实现,并按照 Intershop 食谱中的说明将实现绑定到接口:

https://support.intershop.com/kb/index.php/Display/2S4413#Cookbook-DependencyInjectionandObjectGraphs-Recipe:AddaNewManager/Provider/ServiceNewManagerProviderService

这是 objectgraph.properties 的内容:

这是 AppCoreA1NamingModule.java 的内容:

这是项目结构:

在此处输入图像描述

但是,当我们启动服务器或尝试使用管理器时,会出现以下异常:

build.gradle 源码:

为了能够在我们的墨盒中注入和使用管理器,我们还需要做些什么吗?

0 投票
1 回答
60 浏览

ios - 在核心数据中存储上下文属性的最佳方式?

我正在使用 Core Data 来存储对象。对我来说,根据上下文为每个对象存储不同属性值的最有效可能性是什么(即最佳执行效率、所需代码最少、最简单以及与现有函数/库/框架的最大兼容性),知道上下文不能预定义的,会被用户军团不断编辑吗?

例子:

一个对象是一个人(可能 =Employer / =Employee)

每个人为其他几个人工作,并且根据他们的工作关系拥有不同的头衔,并且他们的头衔可能会在一年之间改变(如果这个细节很重要:每个人也可能同时雇用一个或几个其他人,这就是为什么一个人是雇员,但也可能是雇主)

所以我的对象的一个​​属性是“Title vs Employer vs Year Ended”</p>

以我目前的知识,我能做的最好的事情是将所有三个元素一起保存为一个字符串,该字符串将是分配给每个对象的属性值,并不断解析该字符串以便能够使用它,但这具有以下(巨大)缺点:

(1) 过度减慢执行和增加能源使用。使用这个上下文属性是我预期应用程序核心功能的核心(因此它实际上每分钟会使用 10-100 次)。必须不断解析这些信息才能使用它会增加我非常希望避免的过度处理 (2) 过度编码开销。将这个上下文属性保存为一个字符串会使我每次使用这个中心信息(即经常)时都需要额外的编码。(3) 过度复杂和潜在的不兼容性。它还会增加过度的复杂性,并且偏离预期的做法,它将逃避 Core Data 的优势。

在没有上述缺点的情况下,实现我的预期目的的最有效方法是什么?

0 投票
2 回答
611 浏览

ios - 扩展 UIViewController 以访问应用程序委托是一种反模式吗?

我正在使用一个 API,它建议将其客户端保留在应用程序委托中并通过那里访问它。如果我扩展UIViewController以使其更容易访问应用程序委托,这是否是一种反模式?

UIViewController通过反模式,我的意思是为了这种简单的方便而扩展整个类是否过分?总体而言,像这样扩展课程有什么负面影响吗?每个视图控制器,即使它不访问 API,现在是否都隐式指向应用程序委托?

0 投票
0 回答
126 浏览

ios - Realm 是一个对象图管理器以及它自己的 DBMS 实现吗?

CoreData是一个对象图管理器,可以处理不同的存储类型,其中 SQLite 是最流行的,因为它是持久的。它提供了 'NSManagedObject' 的图表

Realm 是否也是一个对象图管理器,因为它提供了 'Object' 的图,并具有自己的数据库管理存储实现?如果Object Graph ManagerDBMS两个不同的东西,为什么Realm 声称自己是 DBMS 而不是两者兼而有之

通常,如果您自己的自定义设计的数据库接口(作为您可能实现的 CoreData 和 Realm 的选项的自定义解决方案)提供链接到自定义存储实现中的底层记录的对象(某些对象类似于 CoreData 的 NSManagedObject 和 Realm 的对象)它不是带有底层存储的对象图管理还是DBMS

0 投票
1 回答
375 浏览

c# - 如何将整个对象图转换为 ExpandoObject?

我有这个对象层次结构/图表:

人:

兴趣:

技能:

所以,基本上这个用 JSON 表示的实例是:

现在在 C# 中,我想将此对象图的一个实例转换为ExpandoObject然后动态地使用它。我写了这个转换方法:

它适用于嵌套对象。但这改变了属性的可空性。因此这行代码遇到错误:

我应该怎么办?

0 投票
0 回答
19 浏览

eloquent - 如何避免 Laravel Eloquent 对具有双向对象关联的同一实体重复数据库获取?

假设,我有以下简化的对象模型:

即,一个主题收集了几个帖子。每个帖子都属于一个主题。主题可以或不能是foo-ish,并且每个帖子都有一个属性bar。如果帖子的父主题是 foo-ish,则帖子永远不会返回该bar属性的值。

现在,让我们考虑以下代码片段

不幸的是,如果 n 是主题 42 中的帖子数,此代码会触发 n+2 个数据库查询。数据库查询是

首先,按预期获取主题,然后进行一次获取以急切地加载相关帖子。不幸的是,每个帖子都会再次获取公共父主题,因为Post::getBarAttribute调用Post::topic和 Eloquent 解析了属于关系,而没有注意到父主题已经被获取。此外,Eloquent 弄乱了对象图,Laravel 调试栏告诉我 2n+1 个模型已被水合。我希望 Eloquent 能够水合 n+1 个模型(n 个帖子,1 个主题),并且我希望每个模型Post:topic都指向Topic内存中的同一个实例。但是,Eloquent 会Topic为同一实体创建 n+1 个独立的实例。

我该如何解决?