This is how I do things, today, but have followed this model in various forms for about 8 years now. Currently I use Entity Framework for my DAL. Before I used the Data Access Application Blocks in the Enterprise Library.
When you generate an enity model it creates the entities for you, with relationships, a custom data context, etc. The generated code is more or less a base for your business layer.
I then extend the entity classes generated by the model, they are all partial classes so you are good to go! I also create a repository class. This class holds methods to CRUD the data using the model's entities and datacontext.
The web layer then works with the entities and the repository(ies) to retrieve my business objects (entities).
I hope this helps you out.