问题标签 [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.
ios - 对象图关系
为什么这不起作用...?
我在核心数据模型中有一个“客户”实体和一个“汽车”实体。这是一对多的关系。我从表视图控制器中选择了一个“客户端”,并推送了一个新的表视图控制器,它应该显示客户端拥有的所有汽车。
根据 StackOverflow 中其他答案中的信息,我编译了以下短代码来踢出要在表格视图控制器的单元格中显示的汽车名称:
但是,这是行不通的。谁能明白为什么?它编译得很好。仅供参考 - 'client' 是选择的客户端对象;carArray 是在 viewcontroller 头文件中声明的 NSArray,并且 Car 有一个名为“carName”的属性。
c# - 禁用查询的 EF 对象图
我在应用程序中进行缓存,在应用程序启动时,我从数据库中预取几百万行数据并将其卡在本地缓存中。
我的问题是,在获取操作期间,当我通过 EF 加载所有数据时,对象图变得巨大(大约 4GB,一旦我处理上下文就消失了)。我希望能够告诉 EF 不要跟踪此查询范围内(或上下文的生命周期)内的任何对象,以便我的应用程序不会耗尽内存。
有没有好的方法来做到这一点?
relational-database - 从对象图中删除对象,同时保持完整性
在关系数据库中,处理从对象图中删除对象同时仍保持引用完整性的最佳方法是什么?在某些时候,这必须发生。通过软删除或硬删除。
例如 - 当产品被移除时,确保包含该产品的订单仍然相关,或者确保包含该产品的订单的发票仍然相关的最佳方法是什么?
objective-c - 合并两个 iOS 核心数据持久存储的有效方法是什么?
在我们正在开发的应用程序中,我们使用 Core Data 和 sqlite 后备存储来存储我们的数据。我们应用程序的对象模型很复杂。此外,我们的应用程序提供的数据总量太大,无法放入 iOS(iPhone/iPad/iPod Touch)应用程序包中。由于我们的用户通常只对数据的一个子集感兴趣,因此我们对数据进行了分区,使得应用程序在应用程序包。我们的用户在通过 iTunes 应用内购买支付额外内容后,可以选择从我们的服务器下载额外的数据对象(大小约为 5 MB 到 100 MB)。增量数据文件(存在于 sqlite 后备存储中)使用与捆绑包附带的数据相同的 xcdatamodel 版本;对象模型的变化为零。增量数据文件作为 gzip 压缩的 sqlite 文件从我们的服务器下载。我们不希望通过随应用程序提供增量内容来膨胀我们的应用程序包。此外,我们不想依赖对 web 服务的查询(因为复杂的数据模型)。我们已经测试了从我们的服务器下载增量 sqlite 数据。我们已经能够将下载的数据存储添加到应用程序的共享 persistentStoreCoordinator。
但是,这样做有两个问题。
- 数据获取结果(例如,使用 NSFetchResultController)显示时,incrementalStoreURL 中的数据附加到 defaultStoreURL 中的数据末尾。
- 一些对象是重复的。我们的数据模型中有很多实体具有只读数据;当我们将第二个persistentStore 添加到persistentStoreCoordinator 时,这些会被复制。
理想情况下,我们希望 Core Data 将来自两个持久存储的对象图合并为一个(在数据下载时来自两个存储的数据之间没有共享关系)。此外,我们想删除重复的对象。在网上搜索时,我们看到有人提出了一些问题,他们试图做与我们正在做的事情相同的事情——例如这个答案和这个答案。我们已经阅读了Marcus Zarra 关于在 Core Data 中导入大型数据集的博客。然而,我们所见过的解决方案都没有为我们工作。我们不想手动读取增量存储中的数据并将其保存到默认存储,因为我们认为这在手机上会非常缓慢且容易出错。有没有更有效的合并方式?
我们试图通过如下实现手动迁移来解决该问题。但是,我们无法成功地进行合并。对于上面引用的答案 1 和 2 所建议的解决方案,我们并不是很清楚。Marcus Zarra 的博客解决了我们在项目开始时将大型数据集导入 iOS 时遇到的一些问题。
似乎答案1的作者最终从增量存储中读取了他的数据并保存到默认存储中。也许,我们误解了文章 1 和 2 所建议的解决方案。数据的大小可能会阻止我们手动读取增量数据并将其重新插入到默认存储中。我的问题是:从两个持久存储(具有相同的 objectModel)中获取对象图以合并到一个持久存储中的最有效方法是什么?
当我们向对象图添加新的实体属性或修改关系时,自动迁移工作得很好。是否有一个简单的解决方案可以将相似的数据合并到同一个持久存储中,该存储具有足够的弹性以停止和恢复——因为自动迁移完成了?
api - 用于更新对象图的 REST API 设计
我正在设计一个 REST API,并正在寻找更新对象图的推荐最佳实践。我的问题最好用一个例子来解释,所以假设我有一个 GET 资源,如下所示:
URI:/人/123
这个 URI 返回一个像这样的对象图:
当允许 API 使用者更新此资源时,您希望如何通过 PUT 或 PATCH 更新对象?更新“name”属性非常简单,但我不确定“country”或“likes”,因为消费者只能更改与其他对象的关系而不能创建新对象。
这是请求更新的一种方法:
此更新会将资源更改为以下内容:
这种设计明确而明确地要求消费者只更新“Person”的“ID”,但我担心 PUT/PATCH 的对象图看起来与 GET 不同,这使得 API 难以学习和记忆。所以另一种选择是请求 PUT/PATCH 如下:
这将产生与先前更新相同的更改,并且不会更改对象图。但是,API 使用者并没有明确说明只能更新“ID”。
在这种情况下,推荐哪种方法?
java - 引用对象的Java序列化是“丢失值”吗?
再会,
我有一个我无法理解的有趣问题。我有一个名为“HomeScreenManager”的类,它维护一个名为chat的LinkedList<String>。HomeScreenManager 实例位于服务器上,负责跟踪连接和聊天日志。然后我创建了一个名为“ProtocolHomeScreen”的类,它是一个带有LinkedList<String>的类,称为chat并实现可序列化。当需要通过聊天更新所有客户端时,我想发送一个 ProtocolHomeScreen。所以我创建了一个全新的 ProtocolHomeScreen 实例,我说它是字符串的链表“获取”了 HomeScreen 的链表。所以换句话说,我要序列化的链表是在不同的类中创建的,但我用另一个实例指向它。问题是数据没有被发送,只有一个空的 LinkedList 出现在另一边。我已经逐行完成了调试器并检查了所有变量,就在我调用 writeObject 之前,一切似乎都很好,但是在客户端,当我收到 ProtocolHomeScreen 实例时,链接列表是空的!(虽然它不是空的)有什么想法吗?谢谢!
然后这里是协议类...
编辑
这是客户端的代码......请注意,播放器的 LinkedList 很好,但我认为这与我在 ProtocolHomeScreen 的构造函数中创建了一个新实例(在服务器端)有关
object-graph - 在 C# 中构建嵌套或分层对象图
我有一个对象层次结构,可以简单地表示为:
依此类推,某些对象包含多个嵌套对象。现在我试图找出一种通用且优雅的方法来构建具有可用单个对象的完整对象层次结构。在背景下,我从 Web 服务获取单个对象,其中返回对象包含嵌套子对象的标识符,随后我再次调用该服务以获取嵌套对象数据。一旦我解决了所有必要的数据,我就试图找出一种方法来创建完整的对象层次结构,使用各自的构建器为负责创建自身和必要的子对象(通过它们的构建器)的单个对象,以便调用者可以不必手动创建整个对象图。
objective-c - 是否有任何工具可以在 iOS 应用程序运行时生成对象图?
我知道有类模型工具(OmniGraffle、Doxygen)可以从现有的 Xcode 项目生成类模型图。但我正在寻找一种在模拟器或设备中运行 iOS 应用程序时生成对象图的工具。
java - 如何以适合 JAXB 和 Java 的方式表示 XML 模式中的对象层次结构
我有一个代表分类的数据模型。分类是类别的层次结构,例如
我想将此表示为
在 XML 模式 (XSD) 中表示它的最佳方式是什么?
另外,我怎样才能确保在使用 JAXB 时,我可以获得类似的东西
此外,如果我的分类不是一棵严格的树,而是一个图表,其中可能有多个父关系,这样 Spaghetti 就属于 Pasta 和 Noodles
然后使用 JAXB,我想生成类似的东西
请注意,Java 代码被简化仅用于说明目的。使用 JAXB 代码生成,我不介意拥有一个容器对象,例如具有类别属性的 parentCategory
iphone - 从具有多对多关系核心数据iOS的上下文中删除nsmanagedboject
我的模型有 2 个具有多对多关系的实体(类别和新闻):(这意味着一个类别可能有很多新闻,而一篇新闻文章可能属于一个或多个类别)。
下面是我的设计:
- 实体 1:
类别(属性:categoryID、title、show、position)以及与 News Entity 的关系称为“news”。
“新闻”关系有目的地是“新闻”,反向关系是“类别”,类型对多关系和删除规则是级联的。
- 实体 2:
新闻(属性:newsID、报价、内容、链接)以及与称为“类别”的类别实体的关系。
“类别”关系有目的地是“类别”,反向关系是“新闻”,类型对多关系和删除规则无效。
对象图如下所示:
新闻 <<------------->> 分类
我的问题是:
1> 我设计的模型好不好?
2>编码到我设计的模型,如果我从它的上下文示例中删除新闻对象,例如:
id newsObjectToDelete = .... [managedObjectContext deleteObject:newsObjectToDelete];
newsObjectToDelete 所属的 Category 对象是否会自动从关系“News”的 NSSet 中移除 newsObjectToDelete。
3>如果我想限制一个“新闻”必须属于至少一个“类别”。如何实现该约束
预先感谢。对不起英语不好