问题标签 [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.
iphone - 退出核心数据迁移?
我有一个带有非常大的核心数据数据库的应用程序。在过去的一年里,我已经对其进行了多次版本化。
上次我对数据库进行版本控制时,我对实体做了一个简单的更改:我添加了一个新的可选属性。由于某种原因,它不会使用轻量级迁移进行迁移。我后来发现这是由于 Apple 的轻量级迁移代码中的一个错误,该错误是由于我在另一个版本控制中需要的“重命名标识符”而导致的。
反正我跑题了...
由于这个错误让我无法使用轻量级迁移,我创建了一个映射文件来帮助迁移,我不明白这将是一个更繁重的过程,并且会迫使我的用户等待应用程序将整个数据库加载到迁移时的内存。事实证明,对于非常大的数据库,这根本不是一个真正的选择,而且我的许多用户由于内存问题等原因根本无法迁移数据库。
所以现在我想重新发布我的应用程序并解决这个问题。问题是,我的一些用户有一个以某种方式标记为“正在迁移”的数据库。即使使用我的新代码,它摆脱了映射文件并支持轻量级迁移,处于这种状态的用户,“在迁移中”,似乎没有被重置。
退出迁移有哪些选择?- 我可以检测到我处于这种状态,因为 Documents 目录中有一个“.myDB.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3”文件。删除此文件不会清除迁移。我的猜测是数据库以某种方式被标记为处于这种状态,或者已经部分迁移。- 我可以检测到这种状态,然后完全删除数据库。但这迫使我的用户重新下载他们的数据。
有什么想法吗?
谢谢你的帮助。
database - 数据库设计:我们是否也应该为映射表添加时间戳列?
通常它约定不更新映射表的记录,而是删除相同的并添加新的。
在这种情况下,在映射表中添加 updated_on 列无关紧要,但仍然有人可以错误地或故意更新表,这表明在所有表中都有 updated_on 列。在所有表中添加 created_on 列似乎很合乎逻辑,但有点困惑。请建议?
什么是约定?
iphone - 核心数据 - 迁移问题?
我正在尝试进行迁移
我有 2 个版本的模型
我创建了一个从版本 1 到 2 的映射模型
问题是它找不到我创建的迁移模型,所以 mappingModel 总是为零。我需要做些什么来指定它应该使用的 mappingModel 吗?
entity-framework - 实体框架 - 将表拆分为具有重叠条件的多个实体
有没有办法执行以下映射(使用数据库优先方法):
表:(仅出于可读性目的使用类似 C# 的语法定义表)
实体:
我考虑过但不想采取的可能方向包括:
在 MainItems 表上方定义 2 个视图并将实体映射到它们。
(可以使用基本类型,与 Table-Per-Concrete-Type 一起使用。)将 2 个可为空的 FK 列添加到指向自身(指向同一行)而不是 AspectABOrBoth 列的 MainItems 表
(如果 MainItem 是 AspectA,则 1 个不为空,如果 MainItem 是 AspectB,则另一个不为空。)
(可以使用表拆分与此,基于新的 FK 列。)
.net - 实体框架 - GetObjectByKey 不允许主键
我正在尝试使用 GetObjectByKey 函数获取记录,如下所示:
但我得到了这个例外
System.ArgumentException:提供的键值对列表包含不正确的条目数。在“Namespace.Journal”类型上定义了 54 个关键字段,但提供了 1 个。参数名称:key
Journal 类型是一个视图。
我怎么能只用一个字段来使用该函数,我需要它的原因是因为我不想指定一个泛型类型,只需要一个从给定的实体集名称中获取它。
提前致谢
entity-framework - 如何首先在 EF 4.1 代码中映射父列
在我的项目中,我有以下 DomainModel。
我正在使用流畅的配置,如下所示:
我在存储库中获取所有登录数据的代码如下:
当我执行代码时,出现以下错误:
外键组件“CreatedBy”不是“Login”类型的声明属性。验证它没有被明确地从模型中排除,并且它是一个有效的原始属性。
谁能建议我在这里做错了什么?
提前致谢
entity-framework - 在实体框架中定义多对多关联
我的 edmx 中有以下表格:
错误
网站
办公室
办公室到站点之间的映射是一对多的(办公室可以有许多站点实例)。
我想创建从错误到站点的多对多关联,以便我可以直接访问站点属性。我总是在映射中保持错误。有人可以指导我怎么做吗?
提前致谢
cocoa - 核心数据迁移一对多关系
最初的模型是这样的,部门有一组工人:
并且需要进行更改,以便将 Worker 关系转变为相对于 Jobs,我想我需要这个:
首先,这有意义吗?如果是这样,我该如何进行迁移?
关于这些主题的所有文档和示例在哪里?比如映射模型中的值表达式,那里有哪些表达式有用?我想我可能必须在自定义映射中实现 createRelationshipsForDestinationInstance:.. 方法,但几乎没有任何进展。此方法的文档说“(重新)创建迁移对象之间的关系”,但这样做无疑有一些棘手的细节,我对如何正确引用源和目标对象感到疑惑。
我几乎买了一本关于 Core Data 的书,但很幸运地从免费的摘录和源代码中看到这个主题也完全被掩盖了。有谁知道一本书或指南,其中包含“从看起来像这样的模型迁移到看起来像这样的模型,这样做”的示例,这在任何方面都接近全面?
ios - 核心数据映射模型版本哈希与源模型版本哈希不匹配
启用 Core Data Migration Debug 后,在执行迁移时,我看到三个实体(2、3、4)的哈希值发生了变化,正如预期的那样。实体 1 没有变化,仅用于说明。
存储元数据(源模型):
当前模型(目标模型):
接下来,我创建映射模型,但映射模型中的哈希值与实际模型中的不同:
映射模型源哈希:
映射模型目标哈希:
可以使用与实际商店的哈希值不同的哈希值创建映射模型的原因是什么?我查看了这个问题并尝试更新映射模型的模型,但没有奏效。
core-data - 具有新(非可选)关系的核心数据映射模型
我的原始数据模型有一个实体“游戏”。我现在更新了模型以包含一个实体“Match”,它可以引用多个游戏。我希望在我所有的旧游戏中添加一个匹配,理想情况下,这将是一个非可选的关系。
目前我将 Match 设置为可选,并在模型更新后简单地将 Match 添加到 application:didFinishLaunching 中的每个旧游戏。这行得通,但我想知道这是否真的是最好的方法。
我试图按照这里的教程进行操作,但我被“StepOneEntityMigrationPolicy.m”卡住了。我创建了一个 NSEntityMigrationPolicy 子类并将其设置在映射模型中。我已经尝试覆盖 createDestinationInstancesForSourceInstance 和 createRelationshipsForDestinationInstance:,但都没有被调用。
这可能是因为我的 Source 和 Destination 都相同(GameToGame)吗?另外,通过映射模型而不是像我现在这样做有什么好处吗?