// By doing this delegation rather than directly exposing the UnitOfWork, we enable the scenario of changing UnitOfWork out from // under the Repository instances without them knowing or needing to care. #region IRegisterEntites public TEntity RegisterAdd <TEntity>(TEntity entity) where TEntity : class, new() { EnsureTableAndWriterForEntityType <TEntity>(); return(_unitOfWork.RegisterAdd(entity)); }