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
?