title: EF Core Backing fields - expose property as another type?
body: <p>Assume I have an EF entity class Person, with a PhoneNumber on it. PhoneNumber is stored as a string type, but I want all accesses on the Person to go through Phone  which has some nice accessor functions, e.g. validation or <code>GetAreaCode()</code>. I want to back it in the db as a string, but when queried for it I want to return it as a PhoneNumber:</p>
  
  <pre><code>public class Person {
      public PhoneNumber Phone { /* Some clever get/set logic here */ }
  
      private string _phoneNumber; // Backing field
  }
  </code></pre>
  
  <p>Or can I get PhoneNumber to store itself as a string? If I simply include it in the model by removing the backing field above, EF gets confused by the constructors (a protected ctor with some more args than the one string) and also a copy ctor <code>PhoneNumber(PhoneNumber other)</code>. Can i make EF ignore those  somehow? </p>
  
  <p>I'm open to ideas...</p>