title: How to use the repository pattern correctly?
body: <p>I am wondering how should I be grouping my repositories? Like from the examples I seen on the asp.net mvc and in my books they basically use one repository per database table. But that seems like a lot of repositories leading you to have to call up many repositories later on for mocking and stuff.</p>
  
  <p>So I am guessing I should group them. However I am not sure how to group them.</p>
  
  <p>Right now I made a registration Repository to handle all my registration stuff. However there are like 4 tables I need to update and before I had  3 repositories to do this.</p>
  
  <p>For example one of the tables is a license table. When they register I look at their key and check it to see if exists in the database. Now what happens if I need to check this license key or something else from that table at some other spot other then registration?</p>
  
  <p>One spot could be login(check if the key is not expired). </p>
  
  <p>So what would I do in this situation? Rewrite the code again(break DRY)? Try to merege these 2 repositories together and hope that none of the methods are needed in some other point of time(like maybe I might have a method that checks if userName is used - maybe I will need that somewhere else).</p>
  
  <p>Also if I merge them together I would either need 2 service layers going to the same repository since I think having all the logic for 2 different parts of a site would be long and I would have to have names like ValidateLogin(), ValdiateRegistrationForm(),ValdiateLoginRetrievePassword() and etc.</p>
  
  <p>Or call the Repository anyways and just have a weird sounding name around?</p>
  
  <p>It just seems hard to make a repository that has a general enough name so you can use it for many spots of your application and still make sense and I don't think calling another repository in a repository would be a good practice?</p>