Repositorios e ignorancia de persistencia nuevamente

Aquí es donde estoy.

Tengo una clase genérica de repositorioRepository<TKey, TValue>. Tiene los métodos de patrón de repositorio habituales.

ada repositorio toma unaIContext<TKey, TValue> en su constructor que proporciona la persistencia para el repositorio.

Tengo repositorios especializados que se componen de un repositorio genérico y luego métodos adaptados a las acciones del repositorio que son específicas del objeto especializado. Entonces, si tuviera un repositorio especializado para objetos Kitten, tendría métodos para ClimbTree (probablemente tomando un objeto de árbol) pero no un método BuryBone (hueso óseo). El punto que estoy haciendo mal es que crea una asociación entre el gatito y su árbol que debe persistir. @void CleanWhiskers() podría ser un ejemplo más simple. Esto configura los bigotes de Gatitos para limpiar.

Así que ahora estoy pensando en un esquema para la persistencia de objetos secundarios relacionados y empiezo a preguntarme si ya me estoy equivocando un poco.

Empecé con métodos un poco feos en el repositorio para crear objetos secundarios. Entonces el repositorio de Kitten tendría un métodoCreateFurBall() que agregaría un objeto FurBall a la colección FurBall de Kitten Y agregaría una Furball al Repositorio FurBall para que se mantenga (en realidad el mismo objeto).

Ahora he cambiado a un sistema donde tengo algo parecido a una Colección Observable que notifica a su repositorio principal cuando se agrega un POCO. Por lo tanto, puedo crear un POCO furball y agregarlo a la colección que luego se registrará automáticamente en el repositorio de furball.

En primer lugar, tendré nHibernate implementado en los contextos, creo que esto se asigna bastante bien. Esta es una pregunta realmente abierta, para cualquiera que haya estado en esta ruta antes, ¿puede ver algo que lo haga "PARAR!"

Respuestas a la pregunta(4)

Su respuesta a la pregunta