问题标签 [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.
asp.net - 如何处理断开连接的对象图中的重复项?
我在 ASP.NET 应用程序中更新断开连接的 POCO 模型时遇到问题。
假设我们有以下模型:
- 用户
- 区
- 订单
一个用户可以负责0个或多个区,一个订单属于一个区,一个用户可以是一个订单的所有者。
当用户登录时,加载相关的分区。稍后用户加载订单,并将自己设置为订单的所有者。用户(和相关地区)和订单(和相关地区)在两个不同的调用中加载,具有两个不同的 dbcontexts。当我在用户将自己分配给订单后保存订单时。我得到一个例外,说 acceptchanges 不能继续,因为对象的键值与另一个对象冲突。
这并不奇怪,因为同一个地区既可以出现在用户负责的地区列表中,也可以出现在订单上。
我一直在寻找解决这个问题的方法,但我找到的答案似乎是:
- 在我的情况下,不要加载对象之一的相关实体,这将是用户的区域。
- 不要使用对象将用户分配给订单,只需在订单对象上设置外键 id。
- 使用 nHibernate,因为它显然可以处理它。
我尝试了 1 并且可行,但我觉得这是错误的,因为我要么必须在将其与订单相关联之前加载没有其区域的用户,要么进行浅层克隆。这对于这里的这个简单案例来说很好,但问题是在我的案例中,区域可能会在图表中出现多次。而且这似乎毫无意义,因为我有对象,所以为什么不让我连接它们并更新图表。我需要订单的整个图表的原因是我需要向用户显示所有信息。所以既然我得到了所有的对象,为什么我需要重新加载或浅克隆它才能让它工作?
我尝试使用 STE,但遇到了同样的问题,因为我无法将对象附加到由另一个上下文加载的图形。所以我回到了广场1。
我认为这是除了教程代码之外的任何常见问题。然而,我似乎找不到任何好的解决方案。这让我觉得要么我在任何情况下都不理解使用 POCO/EF,要么我很讨厌使用谷歌来找到这个问题的答案。
我已经从 Julia Lerman 的 O'Reilly 购买了两本“Programming Entity Framework”书籍,但似乎也无法在这些书中找到任何解决我问题的方法。
有没有人可以阐明如何处理某些对象可能重复且不一定从同一上下文加载的图形。
ruby-on-rails - 递归更新两个相关对象图的模式
想象一下我有一个对象模型:
一个博客有很多文章,一篇文章有很多评论
还想象一下,我有两个博客,博客A和博客 B。
和
我需要比较博客 A 和博客 B 的对象图,并根据博客 A 中对象 的值更新博客 B。
在这种情况下,博客 B 应该将评论 3 更改为“有趣的东西”,并实例化具有与文章 2 和评论 2 相同的值的新对象。
递归遍历图是显而易见的解决方案,但逻辑变得复杂。我宁愿不重新发明轮子......有没有模式或过程来做到这一点?
我正在使用 Ruby/Rails
java - 是否可以查看 Object Graph JAXB 分析?
我有一个现有的复杂对象模型,我试图将其编组为 JAXB xml。如果可能,我不想更改任何现有的域类。我有这个片段可以编组到一个文件(使用 Groovy)
问题是对象图非常复杂,JAXB 告诉我com.sun.istack.internal.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: com.example.Object@1eef1eb[Id=100053900] -> com.example.Object@1eef1eb[Id=100053900]
有什么方法可以获取有关检测到的周期的更多信息?有谁知道可以帮助分析图表或以图形方式列出图表以便我挑选周期的工具?我感觉这张图中有很多周期(它既古老又复杂),因此我们将不胜感激。
也许作为替代方案,您能否告诉 JAXB 只深入“n”级或类似的东西,这样它就不会创建无限深的 XML?
编辑:
所以关于我的具体问题......原来现有的域对象定义了一个Object getThis()
和void setThis(Object obj)
方法,即“获取”和“设置”this
自引用关键字。这就是导致我循环的原因。这也突出了这样一个事实,即 JAXB 必须使用 JavaBean 方法定义来确定它将编组哪些属性(我以前不知道)。
但是,我认为最初的问题仍然存在,是否有任何好的工具可以分析/查看对象图?
drools - Drools 对象图规则定义
我有一个对象图,我试图从 Drools 中生成 Fulfillment 对象。具体来说,Fulfillment 对象表示满足或不满足的规则。我的对象图如下所示:
如果记录都指向同一个事件,则它们可以满足要求。这会在 Drools 中生成一个 Fulfillment 对象。
产生 Fulfillments 的减少规则如下:
我在这里遇到的问题是,如果用户没有记录,则没有为需求插入 Fulfillment。我相信这是因为没有 Record() 可以搜索来满足我的图表。
有没有办法使用记录而不需要超过零存在?
另外,我是否需要两个规则来插入真假履行,还是有更好的方法来做到这一点?
编辑
这些规则我面临的另一个问题是Requirement(event contains $rec.event)
没有完成查找是否有任何记录满足给定事件集合的任务。有没有更好的方法来查找多个记录的单个事件与单个要求多个事件之间是否存在重叠?
另一个编辑
这是我想到的另一种方法。如果没有找到需求/记录对,而不是插入 Fulfillments,为什么不为没有匹配的正 Fullfillment 的所有需求插入逻辑 Fullfillments:
这处理了比较两个集合的重叠的问题,以及用户没有记录的情况。(希望对此进行一些验证)。
jpa - Drools JPA 实体对象图更新
在定义 Drools 规则时,容纳对象图的最佳方式是什么?
假设我有以下具有多对多关系的实体对象图:
我有以下人为的规则:
我可以将用户插入到 ksession 中,如下所示:
然后更新它们:
但是,如果我将 Value 对象直接更改为"Orange"
,则 Value 没有 FactHandle,因为它是以用户为根插入的。是否有更好的方法来定义规则并插入实体,以便我可以独立更改实体,而 Drools 将评估结果?
ios - 我可以在一个应用程序中创建一个 Core Data 对象图,然后从预设状态在另一个应用程序中使用它吗?
我的应用程序现在有一个包含大约 5,000 个字典的 .plist,在运行时,我用它来创建自定义类的 5,000 个对象。每个都包含一些字符串,一些布尔值等。这是一个相当快的过程,需要几秒钟,但使用 .plist 包含数千个对象有点笨拙。
我将迁移到 Core Data(我以前从未使用过),因此第一步是将 .plist 中的数据获取到这些自定义对象中,然后将它们保存在上下文中。我看过视频之类的,我想我会没事的。
我的第一个问题是:我可以在一个小的独立应用程序(例如,称为 ObjectMaker)中创建对象图和数据模型,然后将其保存在那里,然后导入 .sqlite 或任何我将数据导出到实际应用程序中的格式正在制作?从那里,我将执行所有获取请求,进一步编辑和保存数据等。
我的第二个问题是:是否可以提供用户第一次打开我的应用程序时会得到的对象图的“首次启动状态”(这 5,000 个对象是现成的并且可以访问/查询等?我'希望应用程序附带 .sqlite 或我在 ObjectMaker 应用程序中导出数据的任何格式,并专门使用它,而不知道 .plist 存在。
非常感谢任何和所有的答案^_^
ios - 有人可以解释 iOS 中的文件所有者吗
提前为这个问题道歉,尽管自 iOS 出现以来已经详细讨论过。但我仍然不明白,尽管我尽了最大的努力。我能画出的最接近的图像是“冻结和干燥的对象图”,这很好,但是当涉及到原始编程时,这无助于连接点。
所以,考虑到在你弄清楚什么是做什么之前,你无法真正描述任何东西,让我们看下面的例子:
1) 我有一个 Xib 文件,比如一个 UIView,带有标签和 imageView
2) 我有一个 classX,它是 UIView 的子类,它附加到 IB 身份检查器中的 Xib。IB 出口和 IB 动作在连接检查器中连接到此类。此类将 IB/IA 声明为属性。
3) 我有一个 UIViewController,由 classVC 表示。在这个类中,我使用标准实例化 1)[[NSBundle mainBundle] loadNibNamed:@"bla" owner:??? options:nil][0];
4) classX 和 classVC 通过自定义委托、标准东西进行通信。
问题:
a) XIB 文件的所有者是什么。老实说,我不知道。
b)我[[NSBundle mainBundle] loadNibNamed:@"bla" owner:??? options:nil][0];
为所有者参数输入了什么,最重要的是,为什么?
当对象图解冻和浇水时,运行时不应该连接 2) 中定义的 Outlets,那么在这种情况下文件所有者的意义何在?
或者
如果 XIB 文件 Outlets 没有连接到任何东西,“文件的所有者”是否意味着“我是包含所有必需的 OUTlets 的类,以便可以在该类实例和解压缩的 XIB 之间建立连接?(这就是为什么我不明白了,因为如何建立关联???)
就是这样了。和以前一样傻。
编辑:我不同意其他答案同样有效的事实。我理解他们的意思,但到目前为止,我还没有理解 owner 参数在我描述的情况下应该包含什么,最重要的是,为什么。
c# - JSON.NET 默默地忽略循环引用并将链中的任意链接设置为 null 以解决它们
我正在尝试在 JSON.NET 中序列化一个对象图,其中一个 Galaxy 包含 StarSystems,一个 StarSystem 包含行星,一个行星包含一个殖民地,一个殖民地有一个所有者,并且银河也有一个帝国列表,每个帝国有一个探索过的 StarSystems 的列表。所以 StarSystem、Planet 和 Empire 之间存在循环引用。
我不明白的是我在序列化对象图时得到的行为。当我将参考循环处理设置为默认值时并没有抛出错误,而是在我将其设置为序列化模式时尝试序列化所有内容,它似乎是在序列化链中的一些链接,然后放弃并设置任意值(在我的情况下,探索的恒星系统)为空。当它寻找星型系统但只找到空值时,这自然会导致应用程序的其他地方崩溃!
这可能与链中的某些链接不是直接引用而是集合这一事实有关吗?例如,一个帝国没有一个探索过的星系,而是一个列表。
那么如何让 JSON.NET 序列化所有内容呢?我是否需要消除循环引用并只传递对象的 ID 而不是对象模型中的实际对象引用?我真的不想仅仅为了序列化目的而这样做!
ios - 归档包含字典的 NSArray
我正在尝试保存一个NSMutableArray
in CoreData
。数组包含对象NSDictionary
NSDictionary 具有以下结构
要写入核心数据,我使用以下代码: parray is type BinaryData
并检索我使用的价值
当我尝试检索它时,出现以下错误:
我检查了 NSArray 和 NSDictionary 采用 NSCoding 协议。我在这里做错了什么?