title: How to separate domain classes from EF code first layer and implement DDD in project
body: <p>i am trying to get control over DDD with EF code first. i saw when people work with EF code first then domain classes reside there in same classes. just see a small example.</p>
  
  <pre><code>   public class TestDBContext : DbContext
      {
          public TestDBContext()
              : base("name=TestDBContext")
          {
          }
  
          protected override void OnModelCreating(DbModelBuilder modelBuilder)
          {
              //modelBuilder.Configurations.Add(new vwCustomerConfiguration());
              Database.SetInitializer&lt;TestDBContext&gt;(null);
          }
  
          public DbSet&lt;Customer&gt; Customer { get; set; }
          public DbSet&lt;Addresses&gt; Addresses { get; set; }
          public DbSet&lt;Contacts&gt; Contacts { get; set; }
          public virtual DbSet&lt;vwCustomer&gt; vwCustomers { get; set; }
          public DbSet&lt;vwMyCustomers&gt; vwMyCustomers { get; set; }
      }
  </code></pre>
  
  <p>customer, address, contact and all domain classes are in same project but i want to put all these domain classes in different project.</p>
  
  <p>just see new project hierarchy which i am thinking to implement. all project name will start with my company then do and project name</p>
  
  <p>here it is</p>
  
  <blockquote>
    <p>1) Impex.Domain</p>
    
    <p>2) Impex.Storage</p>
    
    <p>3) Impex.Business</p>
    
    <p>4) Impex.UI</p>
  </blockquote>
  
  <p>so i will have 4 layers and those are domain, Storage, Business and UI. Storage, Business and UI these 3 layer will have reference of Domain layer because these 3 layers Storage, Business and UI may use domain classes.</p>
  
  <p>UI will pass data to business layer and received data from business layer. business layer again will talk to Storage layer where EF code first will be implemented to interact with DB.</p>
  
  <p>if i can successfully complete my project following 4 layers then people should consider my project is based on DDD pattern or not ?</p>
  
  <p>so tell me am i thinking right way. please tell me all your suggestion and guidance. if anyone can foresee any problem then also please aware me in details. thanks</p>