[My previous question](https://stackoverflow.com/q/5609473/671686) made me think again about layers, repository, dependency injection and architectural stuff like this. 

My architecture now looks like this:  

I am using EF code first, so I just made POCO classes, and context. That creates db and model.  

Level higher are business layer classes (Providers). I am using different provider for each domain... like MemberProvider, RoleProvider, TaskProvider etc. and I am making new instance of my DbContext in each of these providers.  

Then I instantiate these providers in my controllers, get data and send them to Views.

My initial architecture included repository, which I got rid of because I was told that it just adds complexity, so why I don't just use EF only. I wanted to did that.. working with EF directly from controllers, but I have to write tests and it was a bit complicate with real database. I had to fake - mock data somehow. So I made an interface for each provider and made fake providers with hardcoded data in lists. And with this I got back to something, where I am not sure how to proceed correctly.

These things starts to be overcomplicated too quickly... many approaches and "pattterns"... it creates just too much noise and useless code.

**Is there any SIMPLE and testable architecture for creating and ASP.NET MVC3 application with Entity Framework?**