He estado jugando un poco con el concepto de UnitOfWork y luego de revisar varias implementaciones (de las cuales muchas no me gustaron!) y terminar haciendo la propia, me gusta la forma en que quedó todo!
Para muestra un boton! Imagínense que necesitan que sus repositorios funcionen de forma “transaccional” que tal esto?
UnitOfWork.BeginTransaction(); var user = userRepository.GetById(id); memberRepository.AddUser(user); userRepository.Delete(user); UnitOfWork.Commit();
Jugando un poco con la framework luego de un rato, me gusta mas la forma que ahora tiene
(lambda expressions are so sweet!)
DoIt.In.Transaction(() => {
var user = userRepository.GetById(id);
memberRepository.AddUser(user);
userRepository.Delete(user);
);
Próximo paso? soportar simples atributos de [Transactional] en el método…
PD: Aun no estoy seguro de como ponerle al “DoIt”
