title: The property X is of type Y which is not supported by current database provider
body: <p>I am really new to EF (using EF core 2.1) and have been following a bunch of tutorials so far, but now I have ventred in to creating my own DB structure and stumbled when trying to add a value in to the DB:</p>
  
  <pre><code>private async Task&lt;int&gt; Insert()
  {
      var address = new Address { AddressLine1 = "1 any street",  AddressLine2 = "", AddressLine3 = "", City = "Any city" };
  
      using (var context = new BranchContext())
      {
          context.Addresses.AddAsync(address);//ERROR HERE
          ....
      }
   }
  </code></pre>
  
  <p>I get the error:</p>
  
  <blockquote>
    <p>InvalidOperationException: The property 'Branch.Address' is of type 'Address' which is not supported by current database provider. Either change the property CLR type or ignore the property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.</p>
  </blockquote>
  
  <p>I have created the following Classes:</p>
  
  <pre><code>public class Address
  {
      public int Id { get; set; }
      public int Guid { get; set; }
      public DateTime CreatedOn { get; set; }
      public string Number { get; set; }
      public string AddressLine1 { get; set; }
      public string AddressLine2 { get; set; }
      public string AddressLine3 { get; set; }
      public string Town { get; set; }
      public string City { get; set; }
      public string Postcode1 { get; set; }
      public string Postcode2 { get; set; }
      public string Latitude { get; set; }
      public string Longitude { get; set; }
  }
  
  public class Branch
  {
      public string Id { get; set; }
      public string Name { get; set; }
      public Address Address { get; set; }
      public IEnumerable&lt;EmployeeBranch&gt; Employee { get; set; }
      public bool IsMain { get; set; }
  }
  
  public class Employee
  {
      public int Id { get; set; }
      public string Guid { get; set; }
      public string EmailAddress { get; set; }
      public JobTitle JobTitle { get; set; }
      public DateTime DateOfBirth { get; set; }
      public IEnumerable&lt;EmployeeBranch&gt; Branches { get; set; }
      public Branch PrimaryBranch { get; set; }
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public string PreferredName { get; set; }
      public Salutations Salutation { get; set; }
  }
  
  public enum Salutations
  {
      Mr = 1,
      Mrs = 2,
      Miss = 3,
      Ms = 4
  }
  
  public class EmployeeBranch
  {
      public int BranchId { get; set; }
      public Branch Branch { get; set; }
      public int EmployeeId { get; set; }
      public Employee Employee { get; set; }
  }
  
  public class JobTitle
  {
      public int Id { get; set; }
      public string Guid { get; set; }
      public string Name { get; set; }
  }
  </code></pre>
  
  <p>I then ran:</p>
  
  <pre><code>Add-Migration init
  Update-Database
  </code></pre>
  
  <p>The following was created:</p>
  
  <p><a href="https://i.stack.imgur.com/Pb8yR.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Pb8yR.png" alt="DB structure"></a></p>
  
  <p>To be clear this is a runtime error, I have viewed couple of threads that get this error when they try to update their db <a href="https://stackoverflow.com/questions/43976692/entity-framework-core-error-not-seen-before-class-tempproperty-is-of-type-objec">here</a> and <a href="https://stackoverflow.com/questions/55525321/error-to-create-field-from-the-complex-object-in-entity-framework-migration">here</a> but their discussions have not pointed me in the right direction (maybe I'm missing the obvious).</p>
  
  <p>How do I resolve this? Preferably without Channing the structure, although I'm happy to if there is a good reason to do so</p>