Your model may be a directly mapped data access object, but it does not have to be. They could also be proxies to your backend DAL, which will always be the best option depending on your requirements and the durability of the project.
The way I usually process it for large projects is to have a separate namespace called Project.Entities , which contains my Entity Framework data models. My Project.Models will contain models that use entities as a backup storage for their data, and provide common methods (where necessary) for managing this data. This may not be the best way to do this, but it provides maximum flexibility and keeps data models separate from backup storage, allowing more abstraction. For example, you can always disable the basic data layer for storage in memory, a different DAL than the Entity Framework or something else.
For projects with less / temporary / testing, my Entity Framework data models will be direct in Project.Models and used directly, as it is faster and does not require much thought.
source share