I have created myself a typed repository interface IRepository that has methods defined such as Save, Delete, FindById, FindAll etc I then created a concrete class Repository that implements all these methods using:
_context.GetTable(typeof(TEntity)
.
I can than create my CustomerRepository like so:
public class CustomerRepository : Repository<Customer>, ICustomerRepository
This all works great until it comes to joining tables, what I'm not sure about is how to expose the rest of the "Tables" in my context, should I just have a property on my IRepository that I can user like so
from c in FindAll()
join o in DB.Orders ON c.CustomerID equals o.CustomerID
select c;
Where DB is my context.