Hasta ahora he estado usando registros activos en todas mis aplicaciones basadas en bases de datos C#. Pero ahora mi aplicación requiere que mi código de persistencia se divida desde mis objetos comerciales. He leído muchas publicaciones sobre el patrón de mapeo de datos de Martin Fowler, pero mi conocimiento de este patrón sigue siendo muy limitado.Patrón de asignador de datos
Vamos a utilizar el siguiente ejemplo:
Si tengo 2 mesas - Cliente y CustomerParameters. La tabla CustomerParameters contiene los valores predeterminados del Cliente para crear un nuevo Cliente.
Tendré que crear una clase CustomersMapper para manejar toda la persistencia del cliente. Mi clase Cliente y Lista de clientes colaborará con esta clase de asignador para conservar los datos del cliente.
tengo las siguientes preguntas:
¿Cómo iba a transferir datos sin formato a & de mi clase de cliente al asignador sin romper ciertas reglas de negocio? ¿DTO?
¿Es aceptable tener un método SaveAll y LoadAll en mi clase Mapper para actualizar y cargar datos de múltiples clientes? Si es así, en el caso de SaveAll, ¿cómo sabrá el mapeador cuándo actualizar o insertar datos?
¿La clase de correlacionador de clientes será responsable de recuperar los valores predeterminados de la tabla CustomerParameters, o será mejor crear un asignador CustomerParameters?
Una herramienta O/R mapper no está realmente aquí. La base de datos que estoy usando es Transaccional y requiere que escriba mi propio Patrón de Mapper.
Todas las ideas y comentarios serán muy apreciados.
Podría extenderse en su significado de "transaccional", sobre todo en contraste a RDBMS tradicionalmente transaccionales como MS-SQL o MySQL? De lo contrario, apoyaría la respuesta de Petter de manera inequívoca. –
Estoy usando Btrieve (basado en el método de acceso secuencial indexado (ISAM)) que no está basado en SQL. Todas las herramientas de Asignación de O/R con las que estoy familiarizado no son compatibles con Btrieve. – MegaByte