Returning generic types from Repository
Is it bad design if I create repostory with methods that returns generic types.


Not at all. It's very useful.


  Is this the proper way of doing that?


I'm not entirely sure because even though you use a generic return type you use the same User table for all of them:


this.context.User



However if the IRepository provides different User tables where each of the different users implement the TUser then I'd say it' fine. Otherwise it would not be that usefull and you could just return the normal User.