问题标签 [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 投票
3 回答
1193 浏览

java - 如何在我的对象层次结构中找到循环?

有一个类Company,它引用另一个实例Company来表示parent. 假设有四家公司c1, c2, c3&c4c2,c3c4母公司设置为c1

例如:

如果我们设置c2为母公司c1

然后它将在公司层次结构中创建一个循环复杂度无限循环,我们必须在我们的系统中避免这种循环。

我们希望能够在运行时检测到这一点。在上述情况下,检查同一类对象的圈复杂度的最佳算法是什么?

0 投票
2 回答
170 浏览

scala - 在某些情况下不可能创建不可变的对象图吗?

我知道不变性并不总是圣杯。但是,由于我现在学习 Scala 已经有一段时间了,所以我总是首先尝试找到一个不可变的解决方案,尤其是在涉及纯“数据对象”时。我目前正在寻找一种为给定场景创建不可变对象图的方法,但我不确定这是否可能。

我只想创建一次图形,创建不需要更改。

想象以下场景:

  • 只有一种类型:Person.
  • Person对象可以有两种类型的引用:
    • PersonPerson 和潜在的孩子(也是类型)之间存在单向的 1-n 关系。
    • 此外,妻子有丈夫,反之亦然

第一个问题是两个配偶之间的关系是循环的。因为设置引用会产生新对象(由于不变性),所以最终配偶 A 指向配偶 B_old,而配偶 B 指向配偶 A_old。另一个帖子中有人说循环引用和不变性是矛盾的。我认为这并不总是正确的,因为配偶 A 可以在自己的构造函数中创建配偶 B 并通过this- 但即使使用这种不舒服的方法,之后添加子引用也会再次更改 A 和 B。反过来——从孩子开始,然后联系配偶——会导致类似的情况。

目前,我认为没有办法做到这一点。但也许我错了,有一些我不知道的模式或解决方法。如果不是,可变性是唯一的解决方案吗?

0 投票
1 回答
91 浏览

entity-framework - 实体框架急切加载嵌套对象图,错误列名无效

猜猜,我在急切加载嵌套图时缺少向 EF 通知导航属性。请让我知道我错过了什么?

我的简化对象图

尝试加载 Product => 及其 Tasks => 及其 TaskStatus

收到以下错误:

{"无效的列名 'TaskStatus_ProductStatusId'。\r\n无效的列名 'ProductStatusId'}

0 投票
2 回答
849 浏览

asp.net-mvc - 如何通过 POST 请求携带复杂的对象模型

我有以下实体模型:

我的 MVC 应用程序将提示QRCode一个 POST 请求。然后我验证此代码是否存在于数据库中AssetLabel,并且满足其他一些服务器端逻辑。然后我需要请求用户联系方式来创建新 Conversation记录。目前我有一个 GET 到一个控制器操作,它返回第一个表单来捕获代码。如果这是有效的,那么我创建一个新 的,用对象FinderViewModel填充并返回一个视图以使用 vm 并显示,和的字段。我的问题是,虽然作为 的一部分被传递给视图,但我可以显示来自;的字段。图形对象不会在 POST 中传回。我知道我可以修改AssetLabelQRCodeNameMobileEmailAssetLabelFinderViewModelAssetLabelAssetLabelFinderViewModel因此它将Conversationas 一个属性设置QRCode为一个单独的属性,该属性可能是表单中的隐藏字段,然后重新找到 theAssetLabel作为第二个表单处理的一部分,但这感觉像是很多工作因为我已经验证过一次以达到创建第二种形式的目的(这就是我离开 PHP MVC 框架的原因)。

第一个问题是如何?,第二个问题是我是否以错误的方式接近这种设计模式。是否有更 .NETty 的方式通过多种形式保存数据?在我学习的这一点上,我真的不想将信息存储在 cookie 中或使用 ajax。

作为参考,第 1 形式 POST、第 2 视图和第 2 形式 POST 的其余代码如下所示(已简化以消除不相关的逻辑)。

FinderView.cshtml

}

AssetLabel 的渲染 HTML 片段

0 投票
1 回答
185 浏览

c# - 汇总验证孙对象的替代方法?

我有一个超过两层深度的对象图。它表示具有子孙的实体(聚合):

我想在图表的所有级别上进行验证。我知道我可以在使用重载或使用规则验证B时访问A。我还没有弄清楚如何使用这两种技术从C的验证器访问A因为似乎没有上下文。Must()Custom()

我能够做我想做的唯一方法是创建一个新的对象,它是一个扁平的表示。换句话说,创建一个将AC放在同一级别的包装器,这允许我使用CMust()上的重载来到达伪父Wrapper上的A

问题是我必须创建另一个验证器(在这种情况下为Wrapper )。我更愿意将我对特定事物的所有验证逻辑放在一起。

还有其他方法吗?

0 投票
1 回答
141 浏览

java - 使用反射 api 测量类的位置稳定性

作为大学项目的一部分,我们需要“创建一个 Java 应用程序,该应用程序使用反射来分析任意 Java 应用程序存档 (JAR) 并计算其对象图中每个组件类的位置稳定性回想一下位置稳定性 (Positional Stability ( I) 一种类型可以通过计算进入和离开该类型的依赖项的数量来衡量:"。

我们需要测量每个类及其组件的传出和传入耦合,然后计算稳定性。

我对如何计算传入和传出耦合有点困惑。这是我到目前为止所做的,

0 投票
1 回答
749 浏览

c# - 忽略 ShouldBeEquivalentTo 中的内部属性

有没有办法在做 ShouldBeEquivalentTo 时忽略类的内部属性?

例如,在下面的类中,我想从对象图比较中排除 MetaData 属性。

我宁愿不使用

因为我可能有超过 1 个内部属性,并且为所有这些属性设置它会很乏味。

0 投票
1 回答
143 浏览

c# - 如何将模型对象图的状态暴露给视图模型?

我正在提高对 MVVM / 依赖注入的最佳实践的理解,而一些看似基本的东西仍然很不清楚。

设想:

  1. 该模型(根据Composition Root模式组成)由类似于以下内容的 DI 对象图组成:

对象图

  1. 图的组成部分(A1、B1 等)具有状态。

  2. 组成部分的状态(A1.StateA1、B1.StateB1 等)不仅作为图中其他对象的依赖关系,还需要出现在视图上

问题:

  • 如何正确地将这种碎片/嵌套状态暴露给视图模型?

如果我的理解是正确的,模型不应该迎合任何类型的状态可视化——视图模型有责任根据视图的要求格式化数据。

这是否意味着视图模型应该知道模型组合的细节,并直接引用例如 B2.StateB2(甚至 A1.A2.B1.B2.StateB2)?

  • 或者,尝试将状态和行为分开,并将所有状态存储在易于视图模型使用的平面对象中是一种好习惯吗?

我正在尝试做的细节:

我正在设计的具体应用程序用作业务应用程序(本地化软件)的简单扩展,以弥补在大型本地化项目中特别有用的一些缺失功能。我的应用模型正在从多个来源获取数据:

  • 一种来源是通过订阅Process.HasExited和来跟踪目标应用程序的进程和窗口状态AddAutomationFocusChangedEventHandler
  • 另一个来源是通过 PInvokes 定期读取目标进程的私有内存。
  • 另外两个来源是 XML(确切地说是 XLIFF)文件,我需要根据我从目标进程的内存中读取的最后一个值来查找节点。此查找生成与本地化软件中的活动本地化单元相关的字符串列表——这是应用程序视图需要传达的主要信息。

我承认该应用程序有点老套,但最终用户的工作效率存在大约 20% 的差异。:)

主视图模型相当简单,只有几个控件,包括我正在用组装和格式化的 HTML 数据填充的 WebBrowser。这里的关键点是让数据始终保持最新,但我的模型对象为此目的实现了 INotifyPropertyChanged。

0 投票
0 回答
89 浏览

java - 实体数据过滤 - payara41-web-4.1.1.164 with Jersey - 如何使用 ObjectProvider

我正在尝试在 MessageBodyReader 中获取 ObjectProvider。但它最终会出现 CDI 错误:“WELD-001334:带有限定符 @Default 的类型 ObjectProvider 的依赖关系不满足”。这个想法是将 ObjectProvider 从 Jersey 映射到 JPA 的 EntityGraph。代码下方:

我从以下位置获取代码:https ://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/entity/filtering/FilteringMessageBodyProvider.java

0 投票
1 回答
235 浏览

c# - Graph Engine“扇出搜索”是如何工作的?

我正在查看Graph Engine(不要与 MSFT AD Graph 混淆),但我对分布式“扇出搜索”有疑问。

据我所知

  • 对象以分布式方式保存在 N 个服务器上。
  • 在运行期间不得更改此 N 个服务器的分配
  • 根据一些配置设置,它们可以是“只读”的
  • 节点之间没有“身份验证”,只有完全信任有效的命令。

我很困惑

  • 数据以何种方式跨节点分片/分区?
  • 在写入过程中可能成为瓶颈的“全局锁”的侵入性有多大
  • 一次会查询多少个节点?

理想情况下,有这样的可视化:

在此处输入图像描述