First of all I will suggest that you have a look at the Sofia Car Rental example that we have in our SDK
. It is basically a small MVC example, that shows how we create repositories and handle the context. The best practice is to have a single context object per request. It does not have to be instantiated (or even referenced) from the controller. It can easily be done by using Ninject and specifying the context life-cycle.
As to interfaces, yes you can modify the T4 templates that are for code generation to output interfaces for your classes (however it is not trivial), or create them on your own. However there isn't a reason to start using interfaces. How would Ninject retrieve such an object, it is not a dependency but rather a data object. You need Ninject (or any other dependency injection container for that matter) to handle the life-cycle of your context, and you need your context to retrieve data objects (entities). I would suggest not to go for interfaces.
I hope this helps and I would like to again recommend having a look at the SDK examples. We have spent quite a lot of time preparing the Sofia Car Rental series showing off the way we think OpenAccess should be used.
the Telerik team
OpenAccess ORM Q2'12 Now Available! Get your hands on all the new stuff