 <h3>Description</h3> <p>You need no DataAnnotation Attribute to do that. In Codefirst you can do the following. The Entity Framework will generate the table you described for you. </p> <h3>Sample</h3> <pre><code>Account { public int Id; } Job { public int Id; public virtual Account Account; } Practice { public int Id; public virtual Account Account; public string Name; } </code></pre> <p>If you want also a <code>ìnt</code> column (<code>AccountId</code>) in your Job / Practice Entity you can do this using the ModelBuilder. The Entity Framwork creates only one foreign key column, like you want.</p> <pre><code>protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity&lt;Job&gt;.HasRequired(x =&gt; x.Account).WithMany().HasForeignKey(x =&gt; x.Accountid); // } </code></pre> <h3>More Information</h3> <p><a href="http://weblogs.asp.net/scottgu/archive/2010/08/03/using-ef-code-first-with-an-existing-database.aspx" rel="nofollow">ScottGu - Using EF “Code First” with an Existing Database</a></p> <h2>Update</h2> <p>You can use <a href="http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d" rel="nofollow">Entity Framework Power Tools CTP1</a> to generate the Models from your existing Database.</p>