简短回答:CoreData 不仅仅是 ORM 实现。
长答案:
ORM维基百科定义是:
计算机软件中的对象关系映射(ORM、O/RM 和 O/R 映射)是一种编程技术,用于在关系数据库中的不兼容类型系统 和面向对象的编程语言之间转换数据。这实际上创建了一个可以在编程语言中使用的“虚拟对象数据库”。
简而言之,它只是关系持久层的抽象或虚拟化,可以简化访问和写入其中的工作。(注:对象关系映射)
虽然CoreData定义指出:
Core Data 是一个框架,用于管理应用程序中的模型层对象。它为与对象生命周期和对象图管理(包括持久性)相关的常见任务提供通用和自动化的解决方案。
Coredata 定义没有提到坚持使用 ORM 定义,尽管它似乎完全兼容。
我发现的不同之处在于:由于 CoreData 框架通过其Persistence Store Coordinator将其抽象层(托管对象和托管对象上下文)与其持久层(Persistence Store)分开,它可以从关系数据库中抽象对象,如 sqlite,以及来自任何其他非关系持久层。
为支持这一说法,这里对NSHipster 进行简要说明:
与流行的看法相反,Core Data 不是一个对象关系映射器,而是一个对象图和持久性框架,能够[...]。使用 Core Data 作为 ORM 必然会限制 Core Data 的功能并混淆其概念的纯度。
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |