问题标签 [mapping-model]

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 投票
1 回答
4270 浏览

iphone - iPhone核心数据轻量级迁移:无法合并模型

我刚开始使用 iPhone 核心数据,在轻量级迁移中遇到了问题。

  • 我在旧模型中添加了两个新字段
  • 重新生成模型类文件
  • 将新模型版本作为当前版本
  • 在生成的模板中的 AppDelegate 中添加以下代码

    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

    if (![persistentStoreCoordinator_addPersistentStoreWithType:NSSQLiteStoreType 配置:nil URL:storeURL 选项:选项错误:&error]) {

  • 最后,我在运行应用程序之前做了一个干净的构建。

当应用程序崩溃时,我收到以下错误...

现在要调试,我添加了以下代码...

这将显示以下结果...

我检查了应用程序包 > MyApp.momd > VersionInfo.plist 文件

它有以下内容......

我在这里想念什么?

更新:问题原来是我在模型中错过的默认值属性。

0 投票
1 回答
124 浏览

objective-c - 防止核心数据错误

我已经为应用商店创建了一个 Mac 应用程序 - 现在发现有必要为 Core Data 修改我的“模型”文件。根据我的经验,更改此模型会在打开与旧模型相关联的旧文件(基于文档的应用程序)时产生错误。我在 Apple 文档中读过,您可以通过保持旧模型“版本化”然后创建新模型来防止这种情况(我可能弄错了)——有人对此有任何提示吗?我不想从无法打开文件的人那里收到一堆愤怒的电子邮件。提前致谢!

扎克

0 投票
1 回答
471 浏览

cocoa - 如何在映射模型中设置反向关系的值?

presentation在我的模型的 v1 中,我在 a和之间有一对多的关系slides

在 v2 中,我通过一对一添加逆向来解决这种愚蠢:

在这两个模型中,a 都slide属于 1 并且仅属于 1 presentation(尽管模型中没有对此进行编码)。

如何在映射模型中指定值表达式来创建slide-->presentation关系而不创建NSEntityMigrationPolicy子类?

0 投票
2 回答
906 浏览

iphone - 从单个实体迁移到具有子实体的抽象父实体,未调用 NSEntityMigrationPolicy

我正在尝试升级我当前的应用程序以使用带有专门子实体的抽象父实体。我创建了一个自定义 NSEntityMigrationPolicy,并在映射模型中将自定义策略设置为我的类的名称。

我正在像这样初始化我的持久存储,这应该是相当标准的:

当我运行该应用程序时,我收到以下错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“操作无法完成。(可可错误 134140。)'

[error userInfo] 包含“原因=找不到迁移的映射模型

我已经验证数据模型的版本 1 将打开,如果我设置 NSInferMappingModelAutomaticallyOption 我得到一个迁移,虽然我的实体没有正确迁移(如预期的那样)。

我已经验证了映射模型(cdm)在应用程序包中,但不知何故它拒绝找到它。我还在自定义迁移策略中设置了断点和 NSLog() 语句,无论有没有 NSInferMappingModelAutomaticallyOption,它都不会运行

关于为什么似乎无法找到映射模型的任何提示?

0 投票
1 回答
437 浏览

nhibernate - 添加带有子集合的对象

我有两个类:一个站点类和一个阶段类。Site 类定义了 Phases 的集合。每个类对应一个数据库表。数据库 (SQL Server 2000) 在两个表之间具有一对多的引用,因此给定站点可以与许多阶段相关联,但给定阶段只能与单个站点相关联。

我正在使用 FluentNHibernate 进行映射。我想把它映射成这样,我可以创建一个新的 Site 实例,分配一些 Phase 实例并进行一次调用以将所有实例都放入数据库:

我有以下映射,但它们没有起到作用:

我通常是 NHibernate 的新手,所以我认识到这里显示的映射可能存在其他我不知道的问题。任何有关如何最好地映射这两个类的帮助将不胜感激。TIA。

0 投票
1 回答
6378 浏览

xcode - 核心数据迁移:属性映射值表达

我目前在我的实体上有一个 cardType 属性,在旧模型中可能是“数学”、“图像”或“文本”。在新模型中,我将只使用“Math”和“Text”,并且还有一个 hasImage 属性,如果旧 cardType 是 Image(我想将其更改为“Text”),我想将其设置为 true。

最后,我有一组另一个实体“卡片”,其中一组可以与卡片组相关联,并且在每个实体中,如果卡片组是“图像”类型之前。

使用我在两个版本之间创建的映射模型中的值表达式,这一切都可能吗,还是我必须做其他事情?

我找不到任何文件准确地告诉我值表达式中的可能性(Apple 的文档 - http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CoreDataVersioning/Articles/vmMappingOverview.html% 23//apple_ref/doc/uid/TP40004735-SW3 - 只有一个非常简单的转换)。如果我必须做其他事情,那会是什么?这似乎很简单,一个表达式应该能够做到这一点。

0 投票
1 回答
2167 浏览

iphone - 更改核心数据模型版本标识符

我正在尝试调试我的映射模型没有被我的迁移使用的问题,因此我打印了 sourceModel 和 destinationModel 的 versionIdentifiers,但两者都是空白的。

http://developer.apple.com/library/ios/#documentation/cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectModel_Class/Reference/Reference.html%23//apple_ref/occ/instm/NSManagedObjectModel/versionIdentifiers

这个链接说要在模型检查器中设置它们,但我在 xcode 3 或 4 上找不到它......或者至少在我能找到数据模型本身的任何地方都没有 versionIdentifier 或类似的东西。

有谁知道我在哪里找到的?

0 投票
4 回答
7829 浏览

iphone - 核心数据迁移 - 找不到迁移的映射模型

我按照此处找到的指南进行操作: http ://www.timisted.net/blog/archive/core-data-migration/ 但是当我使用新模型启动应用程序时,不断收到“找不到用于迁移的映射模型” . 我已经在 xcode 3 和 xcode 4 中多次尝试过,但永远无法让它工作。

目前我的选项设置为:

我之前为 infer 选项设置了 YES,但它只是在迁移时没有调用我需要迁移的自定义策略,我认为这是因为它之前也找不到映射模型。

我的映射模型没有被拾取的任何原因?我已经通过对照它的 SVN 版本检查了以前的模型,并仔细检查了它没有对它进行任何更改。

谢谢。

0 投票
1 回答
930 浏览

iphone - 应用更新后保留核心数据

我正在使用核心数据来存储用户选择的收藏夹。我想知道,如果我发送应用更新,在用户更新应用后如何保留收藏夹的数据?

我读过你可以使用版本控制,但我不确定这是否是正确的方法。

任何帮助将不胜感激!谢谢

0 投票
2 回答
445 浏览

core-data - coredata自动轻量级迁移后更新崩溃

我最近提交了我的应用程序的升级,其中包括轻量级核心数据迁移(包括现有表中的新字段和几个新表)。我遵循了有关此迁移的所有提示,包括我在此站点上找到的一些提示。

我在三种不同的设备上彻底测试了更新,一切正常!!!

但是,此更新正在使我所有的设备崩溃,并且可能在我的所有客户上崩溃。我无法解释为什么会这样。

你能帮我理解这场灾难吗?