"in mvc it is good to use repository pattern and unit of work class" - this is highly questionable, while saying things like "considered one of the best pattern used out today" is plain wrong: patterns are only good or bad within some context, without which you can't really tell whether they are good choice or not.
Starting with the question "which patterns should I use" without first thinking about the specifics of the application you need to write is a sure-fire way to create an overdesigned application.
Repository and UoW have been popularized by Domain driven design, and they make a lot of sense if you go down that path. DDD is excellent approach for some applications, but I would argue that this is not a majority of applications. Many web apps are just CRUD apps which don't benefit from DDD or wrapping every access to entities in a repository - e.g. choosing a micro-ORM is often a saner approach here.
If you are still sure that your app really needs such an approach, instead of implementing all this stuff yourself, I suggest using a framework like NHibernate, as you will need more then just UoW and repo - they will require identity map implementation, etc. NHibernate provides a lot of things out of the box (e.g. its Session
type is actually an excellent implementation of UoW plus much more), and covers many details which you will only find a necessity once after you go into details of implementing your own version. Entity Framework might also be a good choice here, although it is not my favorite.
Of course, writing your own is a great way to extend your knowledge, but if you need this for a production application, you will save a lot of time, money and headaches by picking an existing implementation.