title: Entity Framework : Table per Concrete Type and unique IDs across tables
body: <p>I have a few tables that share only a few navigation properties and an ID.
  I think Table per Concrete type inheritance would be interesting here.. (?)
  It looks something like this :</p>
  
  <p>Contact (Base, Abstract, not mapped)<BR>
  - ContactID<BR>
  - navigation properties to other tables (email, phone, ..)</p>
  
  <p>Person : Contact (mapped to table Person with various properties + ContactID)<BR>
  - various properties<BR></p>
  
  <p>Company : Contact (mapped to table Company with various properties + ContactID)<BR>
  - various properties<BR></p>
  
  <p>Now for this to work, the primary key (contactID) should be unique across all tables.
  2 options then: <BR>
  - GUIDs (not a fan)<BR>
  - an additional DB table generating identities (with just a ContactID field, deriving tables have FK), this would not be mapped in EF.</p>
  
  <p>Is this setup doable ? 
  Also, what will happen in the ObjectContext ? What kind of temporary key does EF generate before calling SaveChanges ? Will it be unique across objects ?</p>
  
  <p>Thanks for any thoughts.
  mike.</p>