¿Por qué los datos del núcleo no son un ORM?

¿He leído los datos básicos en un ORM ? ¿Alguien puede enumerar el argumento de por qué no es un ORM ?

Mi punto:

  1. Mientras usamos datos del núcleo, trabajamos principalmente en objects como en ORM .
  2. Todo el acceso y la manipulación se realizan en los objects.
  3. Podemos cambiar el backend y admite múltiples backend como sqlite, plist, in-memory.

Respuesta corta: CoreData es más que una implementación ORM.

Respuesta larga:

La definición de wikipedia ORM es:

La asignación de objects-relaciones (ORM, O / RM y O / R mapping) en el software de computadora es una técnica de progtwigción para convertir datos entre sistemas de tipo incompatibles en bases de datos relacionales y lenguajes de progtwigción orientados a objects. Esto crea, en efecto, una "database de objects virtuales" que se puede usar desde el lenguaje de progtwigción.

Dicho simplemente, es solo una abstracción o virtualización de una capa de persistencia relacional que facilita el esfuerzo de acceder y escribir en / en él. (Nota: mapeo relacional de object )

Mientras que la definición de CoreData establece:

Core Data es un marco que utiliza para administrar los objects de la capa del model en su aplicación. Proporciona soluciones generalizadas y automatizadas para las tareas comunes asociadas con el ciclo de vida del object y la gestión de charts de object, incluida la persistencia.

La definición de Conetworkingata no menciona la definición de ORM, aunque parezca totalmente compatible.

La diferencia que encontré es que, dado que el marco CoreData separa su capa de abstracción ( Objetos gestionados y contexts de objects gestionados ) de su capa de persistencia ( Almacén de persistencia ) a través de su Coordinador de tienda de persistencia , puede abstraer objects de una database relacional, como sqlite y también desde cualquier otra capa de persistencia no relacional.

Para respaldar esta afirmación, aquí la descripción breve de NSHipster :

Contrariamente a la creencia popular, Core Data no es un Mapeador Object-Relational, sino más bien un gráfico de objects y un marco de persistencia, capaz de […]. Usar Core Data como ORM necesariamente limita las capacidades de Core Data y enturbia su pureza conceptual.