For optimization - makes sense, it will really speed up complex queries. There is no difference in the number of ways You will get data from dB in the controller. The Assembly will be loaded once, and if it is hanging around, the weather will not make it. You can make an additional layer between the Repository database and the controller and inside to make methods which will at least through EF, even through ADO.NET or more after that to get the data.