title: Should I think of Entities in EF as Domain Models or DTO's?
body: <p>I am new to Entity Framework (Code first, if it matters).  As I have been using it, I have been building my POCO classes, thinking of them as final domain models.  With things like Lazy Loading, I like the Idea that I can use these entities directly in my presentation layer, getting to lazy load the stuff that I actually need.</p>
  
  <p>However, I also recently learned about Data Transfer Objects, something I hadn't heard of before.  It absolutely makes sense; the behavior of my final Domain Model might have some business rules that don't belong in the DAL.  For instance, should the POCO <code>SalesOrder</code> that i give to Entity Framework include it's final methods like <code>AddItem(Product)</code>, which throws an exception if <code>Product</code> has a <code>DiscontinuedDate</code> that is before the <code>SalesOrder.OrderDate</code>.  That definitely sounds like stuff that belongs in the BLL.</p>
  
  <p>So, I suppose this means that the POCO classes that I give Entity Framework should be more like DTO's?, like <code>SalesOrderDto</code> and <code>EmployeeDto</code> just simple little data holders with just properties and no methods that then get mapped (probably using AutoMapper) to Domain Objects in my BLL, which then get passed to the Presentation Layer?</p>
  
  <p>Am I on the right track here, Or am I missing something.  I feel confused because the idea of DTO's make perfect sense, but I have never seen them used in the context of Entity Framework.</p>