Take the 2-minute tour ×

Can anyone recommend good tutorial on repository pattern usage, in C#?

share|improve this question

closed as not constructive by Kev Feb 4 '12 at 15:02


For a few resources about testing repositories, see: stackoverflow.com/questions/4313985/… –  alexandrul Apr 8 '11 at 12:25
Why is this guy Kev closing everything that has to do with learning repository pattern?? –  Shawn Mclean Mar 4 '12 at 23:17
Shawn, I think if you want an answer, you'll need to ask on meta stackoverflow. I've challenged the aggressive closure policy there (w/o success). –  Keith Hoffman Apr 4 '12 at 20:27

9 Answers 9

A good place is the book Applying Domain-Driven Design and Patterns by Jimmy Nilsson

My blog post: Using the unit of work-per-request pattern in ASP.NET MVC also details a Repository implementation in C#.

share|improve this answer
I do not think I have ever seen a more imposing and annoying flying div than on that blog post. Wow! –  Travis J Jan 26 '12 at 21:24
Could you fix your links please? I'm getting 404 for both. –  Dariusz Nov 26 at 22:25

I'm using one from Mike Hadlow (http://mikehadlow.blogspot.com/)
With LINQ and some IoC, it's really joy to programm...
Also, it's easy to make fake repository based on mike's interface and do some TDD:)

share|improve this answer
I agree, it's very good work. See mikehadlow.blogspot.com/2008/03/… and the full source at code.google.com/p/sutekishop/source/browse/#svn/trunk/… –  Robert Claypool Oct 2 '09 at 4:21

The repository pattern is fairly straight forward, but transactions, and associations(has one, has many) can make it more complex/advanced.

Here is a simple/effective implementation i'm using from CommonLibrary.NET

It supports the following:

1.Create, Retrieve, Update, Delete, GetAll, DeleteAll, FindByQuery, GetPage, etc methods

2.RepositorySql base class, just implement Create/Update & use conventions e.g. Id

3.It also has an In-Memory Repository implementation. Very useful for unit-tests testing.

However, to be objective, here is a list of all I'm aware / heard of:

  1. Rhino.Commons Repository (very extensive)

  2. CommonLibrary.NET Repository (light-weight and effective)

  3. Sharp Architechture Repository (good, generic and NHibernate implementation)

share|improve this answer

I feel that NHibernate is the best ORM to implement the repository pattern with, particularly because there is very little code involved and also because it allows absolutely zero coupling with your domain model. There is a great example on code.google that depicts the proper way to implement the Repository pattern using NHibernate (with FluentNHibernate).

(Full disclosure: I am the owner of said code.google project.)

share|improve this answer
James, I am writing since you are the owner of the example. I new to this and your example was really easy to make. But, How do you mapping the table and the felds to the objects? –  Naor Apr 4 '11 at 1:14
That's all taken care of via FluentNHibernate. wiki.fluentnhibernate.org/Fluent_mapping –  James Jones Apr 5 '11 at 2:23

This post describes the approach I use:


I'd be careful about expecting to be able to copy/paste a solution though, in my experience with repositories its better to evolve your own implementation.

share|improve this answer

I'm not sure one exists. I assume you've looke at the Martin Fowler EA description?. If you have the book, it's very explicit about all the patterns and quite good. In my oppinion :)

Maybe this would be nice opportunity to make one here on this site.

share|improve this answer
Nice slideshare for PoEAA - slideshare.net/pagsousa/poeaa-by-example –  Murali Bala Aug 28 '13 at 14:13

This video http://www.asp.net/learn/mvc-videos/video-403.aspx goes into it some. This video is in VB, but someone converted into C#; and the code is here http://panjkov.qsh.eu/files/folders/aspnetmvc/entry69.aspx

share|improve this answer
I (starter of this thread) converted that code. I'd like to have realization of Repository based on Generics –  Dragan Panjkov Sep 7 '08 at 22:08

This is how i learned it:

CodePlex - project

What i also learned was: IoC containers, ... It's a very good project, stripped in layers and it already has a renewed (more advanced) version. I'd suggest to use the previous version as a start and then upgrade your skill.

share|improve this answer

Rocket Framework for windows form is one of the best and it is unique and most itelligant way of applying the repository pattern..

It has a one generic repository for all the entities.. that is something I have never seen before..

You may find the source code of it here..


Rocket @ CodePlex

share|improve this answer
