Skip to main content

Repository pattern usage

I need some advice regarding repository pattern. Let's assume i have UserBal which stands for business logic which uses UserRepositoryDal where all database logic for that entity stands (queries to table T_Users because my repositories uses stored procedures.) In my database i have table T_Users and T_UserTypes. In T_User table there is relation to T_UserTypes. It means each user has own user type.

In my application i've created:

  • UserBal - for business logic and uses UserRepositoryDal

  • UserRepositoryDal - all database logic to get data for 'T_Users'

Repository have common functionality like: GetAll(), Insert etc..

My entites are:

public class User
{
     public int Id { get; set; }
     public string Name{ get; set; }
     public int FK_UserType { get; set; }
}

public class UserType
{
     public int Id { get; set; }
     public string Name{ get; set; }
}

I am not sure at this point whether should i create also repository for table T_UserTypes like: UserTypeRepositoryDal and for business logic UserTypeBal which would use UserTypeRepositoryDal ?

or should i just modify my User class instead of:

public int FK_UserType { get; set; } 

change to:

public UserType UserType { get; set; }

so there would not be UserTypeBal and UserTypeRepositoryDal at all

Nevertheless when in application i would like to get list of UserType for instance for combo box control or whatever i would not have UserTypeRepositoryDal with GetAll() so where should i put logic for UserTypes GetAll(). Should it be in UserRepositoryDal?

Arie
  • 149
  • 5