For the duplication of your entities... it depends the version of EF and the approach you use.
If you use POCO entities, then your model is not related to EF as your entities don't inherit from EntityObject
. So you wouldn't have to duplicate your entities. At runtime, thanks to proxy entities, EF will generate dynamic types that inherit from your POCO and add all the EF plumbing for lazy loading...etc.
In any case, do note that because of ASP.Net MVC, you'll always end up by duplicating some model classes into what's called view models, so you can strongly type your views.
Secondly, am i correct in assuming that the dependancy gets flipped around and instead of the business layer being dependant on the data layer, the data layer ends up becoming dependant on the business layer?
No, the data layer shouldn't be aware of the business layer.