<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Gil Fink&amp;#39;s Blog : Data Access</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx</link><description>Tags: Data Access</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Creating a Many To Many Mapping Using Code First</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx</link><pubDate>Mon, 01 Aug 2011 14:17:19 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:878537</guid><dc:creator>Gil Fink</dc:creator><slash:comments>3</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=878537</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx#comments</comments><description>&lt;h1&gt;Creating a Many To Many Mapping Using Code First&lt;/h1&gt;  &lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Creating a Many To Many Mapping Using Code First" border="0" alt="Creating a Many To Many Mapping Using Code First" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/EF4.1_49BD450E.png" width="240" height="83" /&gt;Today I got a question about how to create a many to many mapping using Entity Framework Code First. The question was how to create the mapping with an existing database. Here is an explanation how to achieve that.&lt;/p&gt;  &lt;h3&gt;Creating Many To Many Mapping&lt;/h3&gt;  &lt;p&gt;Sometimes there is a need to create a many to many relation in the database. When we want to achieve that we will create a relation table which will hold the primary key from every table in the many to many relation. Here is an example of a simple many to many relation that can exist in a database:&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DatabaseDiagram" border="0" alt="DatabaseDiagram" src="http://blogs.microsoft.co.il/blogs/gilf/DatabaseDiagram_2B8F875A.png" width="498" height="300" /&gt;&lt;/p&gt;  &lt;p&gt;In Code First, when we want to create such a relation all we have to do is to create the relevant entities which will hold an ICollection in each side of the relation and create the relevant DbContext. Here is an example for a many to many relation in Code First:   &lt;br /&gt;    &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;     &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Person&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; PersonId { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; FirstName { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; LastName { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ICollection&amp;lt;Course&amp;gt; CoursesAttending { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Person()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    CoursesAttending = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HashSet&amp;lt;Course&amp;gt;();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; CourseId { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ICollection&amp;lt;Person&amp;gt; Students { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Course()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Students = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; HashSet&amp;lt;Person&amp;gt;();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SchoolContext : DbContext&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Person&amp;gt; People { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SchoolContext()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="color:#006080;"&gt;&amp;quot;MyDb&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Simple as that. The problem starts when we have an existing database where the column names or the relation name aren’t generated by Code First convention engine. In the previous figure of the database, Code First will generate the column names – Person_PersonId and Course_CourseId which don’t match to the existing table.&lt;/p&gt;

&lt;h3&gt;Using Code First Fluent API to Create a Many To Many Relation Mapping&lt;/h3&gt;

&lt;p&gt;So we have a small problem with existing relation tables. We can solve the problem by overriding the OnModelCreating method and adding the mapping using Code First fluent API. Here is an example of such a mapping to solve the previous model’s problem:
  &lt;br /&gt;

  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SchoolContext : DbContext&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Person&amp;gt; People { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SchoolContext()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="color:#006080;"&gt;&amp;quot;MyDb&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(DbModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Course&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasMany(c =&amp;gt; c.Students).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      WithMany(p =&amp;gt; p.CoursesAttending).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Map(&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       m =&amp;gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;         m.MapLeftKey(&lt;span style="color:#006080;"&gt;&amp;quot;CourseId&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;         m.MapRightKey(&lt;span style="color:#006080;"&gt;&amp;quot;PersonId&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;         m.ToTable(&lt;span style="color:#006080;"&gt;&amp;quot;PersonCourses&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       });&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
In the OnModelCreating you will use the HasMany to indicate that course has many students and WithMany to indicate that a person can attend a lot of courses. The Map method will tell Code First how to build the relation table with the relevant name (using ToTable mapping) and with the relevant keys (MapLeftKey and MapRightKey).&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Creating a many to many relation with Code First is easy. You need to get used to the fluent API if you have an existing database but the API is self explanatory so it makes your job easier.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/08/01/creating-a-many-to-many-mapping-using-code-first.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=878537" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Code+First/default.aspx">Code First</category></item><item><title>Microsoft Entity Framework June 2011 CTP was Released</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx</link><pubDate>Fri, 01 Jul 2011 15:34:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:848041</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=848041</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx#comments</comments><description>&lt;h1&gt;Microsoft Entity Framework June 2011 CTP was Released&lt;/h1&gt;  &lt;p&gt;Yesterday, ADO.NET team released a new EF CTP. If you attended my &lt;a href="http://go.sela.co.il/msdp11"&gt;&lt;strong&gt;Sela Dev. Days&lt;/strong&gt;&lt;/a&gt;&amp;#160;&lt;a title="My Sela Dev Days Experience" href="http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx"&gt;&lt;strong&gt;EF4.1 tutorial day&lt;/strong&gt;&lt;/a&gt; this week you heard about this release and the new features. Here is the list of new features to expect from EF4.2 that you can evaluate with the new EF CTP:&lt;/p&gt;  &lt;h3&gt;Runtime Features&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;The Enum data-type. At last we will have support for enums. You can use either the Entity Designer within Visual Studio to model entities that have Enum properties, or use the Code First workflow to define entities that have Enum objects as properties. You can use your Enum property just like any other scalar property, such as in LINQ queries and updates. &lt;/li&gt;    &lt;li&gt;Geography and Geometry Spatial data-types&lt;strong&gt;&amp;#160;&lt;/strong&gt;which are natively supported by the Entity Framework. &lt;/li&gt;    &lt;li&gt;Table-valued functions can be added to entity data models. A table-valued function is similar to a stored procedure, but the result of executing the table-valued function is &lt;i&gt;composable&lt;/i&gt;, meaning you can use it as part of a LINQ query. &lt;/li&gt;    &lt;li&gt;Stored procedures can now have multiple result sets in your entity data model. &lt;/li&gt;    &lt;li&gt;The Entity Framework June 2011 CTP includes several SQL generation improvements. &lt;/li&gt;    &lt;li&gt;LINQ queries are now automatically compiled and cached to improve query performance. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Entity Framework Designer Features&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;The Entity Designer now supports the creation of enums, spatial data-types and table-value functions from the designer surface. &lt;/li&gt;    &lt;li&gt;You can now create multiple diagrams for each entity data model. Each diagram can contain entities and relationships to make visualizing your model easier. &lt;/li&gt;    &lt;li&gt;The StoreGeneratedPattern for key columns can now be set on an entity Properties window and this value will propagate from your entity model down to the store definition. &lt;/li&gt;    &lt;li&gt;Diagram information is now stored in a separate file from the edmx or entity code files. &lt;/li&gt;    &lt;li&gt;Batch import for stored procedures as function imports. The result shape of each stored procedure will automatically become a new complex type in your entity model. This makes getting started with stored procedures very easy. &lt;/li&gt;    &lt;li&gt;The Entity Designer surface now supports selection driven highlighting and entity shape coloring. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Mode Information About the CTP Release&lt;/h3&gt;  &lt;p&gt;For further information about the CTP you can go to this &lt;a title="Announcing the Microsoft Entity Framework June 2011 CTP" href="http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx"&gt;&lt;strong&gt;link&lt;/strong&gt;&lt;/a&gt;. &lt;strong&gt;Pay attention for the Getting the Microsoft Entity Framework June 2011 CTP and the Getting Started sections in the announcement and also to the Uninstalling section.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Here are some CTP walkthroughs that were published in ADO.NET team blog:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/06/30/walkthrough-enums-june-ctp.aspx"&gt;Enums&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/06/30/walkthrough-spatial-june-ctp.aspx"&gt;Spatial&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/06/30/walkthrough-table-valued-functions-june-ctp.aspx"&gt;Table-Valued Functions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/adonet/archive/2011/06/30/walkthrough-multiple-result-sets-from-stored-procedure.aspx"&gt;Multiple Result Sets&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/efdesign/archive/2011/06/30/auto-compiled-linq-queries-entity-framework-june-2011-ctp.aspx"&gt;Auto-compiled LINQ queries&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/07/01/microsoft-entity-framework-june-2011-ctp-was-released.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=848041" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Code+First/default.aspx">Code First</category></item><item><title>My Sela Dev-Days Experience</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx</link><pubDate>Wed, 29 Jun 2011 01:21:02 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:847031</guid><dc:creator>Gil Fink</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=847031</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx#comments</comments><description>&lt;h1&gt;My Sela Dev-Days Experience &lt;/h1&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/DevDaysHeader_2EA59917.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="My Sela Dev-Days Experience " border="0" alt="My Sela Dev-Days Experience " src="http://blogs.microsoft.co.il/blogs/gilf/DevDaysHeader_thumb_47449A8D.png" width="640" height="180" /&gt;&lt;/a&gt;    &lt;br /&gt;Today I finished my &lt;a href="http://go.sela.co.il/msdp11"&gt;&lt;strong&gt;Sela Dev. Days&lt;/strong&gt;&lt;/a&gt; experience. &lt;a href="http://go.sela.co.il/msdp11"&gt;&lt;strong&gt;Sela Dev. Days&lt;/strong&gt;&lt;/a&gt; is a conference which include 5 days, 15 top experts, 25 session, and a whole lot of attendees (around 600 people registered for this week). If you are not familiar with &lt;a href="http://go.sela.co.il/msdp11"&gt;&lt;strong&gt;Sela Dev. Days&lt;/strong&gt;&lt;/a&gt; you can go to the conference’s &lt;a href="http://go.sela.co.il/msdp11"&gt;&lt;strong&gt;site&lt;/strong&gt;&lt;/a&gt;. In the conference I had three tutorial days in three different subjects:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.sela.co.il/s/minisdp/tutorials2.html#262"&gt;&lt;strong&gt;ASP.NET MVC 3, EF Code First integration, and Razor: Oh My!&lt;/strong&gt;&lt;/a&gt;      &lt;br /&gt;In this one day tutorial I co-operated with Sebastian Pederiva, a senior consultant in Sela. In the day we gave a crash dived into Microsoft Web Platform – including ASP.NET MVC 3, EF, Web Platform Installer, Razor view engine and more. At the beginning session I introduced Microsoft web platform and ASP.NET MVC. Then, I talked about building models and data access layers for MVC applications on top of Entity Framework and in particular with Code First. In the third session I talked about how to work with controllers and about the routing concept in ASP.NET. Sebastian talked about Razor and how to integrate AJAX into MVC applications using the jQuery library.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sela.co.il/s/minisdp/tutorials2.html#272"&gt;&lt;strong&gt;HTML 5&lt;/strong&gt;&lt;/a&gt;      &lt;br /&gt;In this one day tutorial I talked about what to expect out of the coming HTML5 standards, the new HTML5 elements, how to migrate HTML4 applications to HTML5 (here I gave a case scenario and with the help of the attendees we migrated a blog web page to HTML5) and about some of the new HTML5 API such as Geolocation, Web Workers, Web Sockets, Canvas and more.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sela.co.il/s/minisdp/tutorials2.html#282"&gt;&lt;strong&gt;Entity Framework 4.1 and Code First&lt;/strong&gt;&lt;/a&gt;      &lt;br /&gt;In this one day tutorial I co-operated with &lt;a title="Ido&amp;#39;s blog" href="http://blogs.microsoft.co.il/blogs/idof"&gt;&lt;strong&gt;Ido Flatow&lt;/strong&gt;&lt;/a&gt;, another senior architect in Sela. I delivered four sessions – introduction to ORMs and EF, querying and manipulating data using Entity Framework, Entity Framework internals and Code First. Ido gave a session about Entity Framework in distributed applications.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I want to thank all the attendees that joined me in the days I delivered.    &lt;br /&gt;All the demos can be downloaded from &lt;a href="http://bit.ly/ihpZky"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/28/my-sela-dev-days-experience.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=847031" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/MVC+Framework/default.aspx">MVC Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ASP.NET+MVC+Framework/default.aspx">ASP.NET MVC Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela+Group/default.aspx">Sela Group</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/HTML5/default.aspx">HTML5</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ORM/default.aspx">ORM</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Code+First/default.aspx">Code First</category></item><item><title>How to Configure a Self Referencing Entity in Code First</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx</link><pubDate>Fri, 03 Jun 2011 18:36:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:840080</guid><dc:creator>Gil Fink</dc:creator><slash:comments>4</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=840080</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx#comments</comments><description>&lt;h1&gt;How to Configure a Self Referencing Entity in Code First&lt;/h1&gt;
&lt;p&gt;A few days ago a worker in &lt;a title="Sela Group" href="http://www.selagroup.com/"&gt;&lt;strong&gt;Sela&lt;/strong&gt;&lt;/a&gt; asked me how to configure a self &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/EF4.1_24C0968F.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;FLOAT:right;BORDER-TOP:0px;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="How to Configure a Self Reference in Code First" border="0" alt="How to Configure a Self Reference in Code First" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/EF4.1_thumb_00D7BF35.png" width="240" height="83" /&gt;&lt;/a&gt;referencing entity with EF Code First. In this post I’ll show you how to implement that configuration.&lt;/p&gt;
&lt;h3&gt;Self Reference Scenarios&lt;/h3&gt;
&lt;p&gt;There are a lot of scenarios that we will want to implement a self reference between an entity to itself. For example, we do that when we want to create hierarchies in our application - an employee entity that has a self reference to his/her manager is a very common scenario for that. When we want to create that behavior in a database all we have to do is to add a foreign key in the table that point to the table primary key and we are done. But how can we do that in EF Code First?&lt;/p&gt;
&lt;h3&gt;Configure a Self Reference in Code First&lt;/h3&gt;
&lt;p&gt;In EF Code First we can use the fluent API in order to configure a self reference. Lets jump into an example that will direct you how to make that configuration. &lt;br /&gt;The first thing is the entity: &lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM:gray 1px solid;BORDER-LEFT:gray 1px solid;PADDING-BOTTOM:4px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:20px 0px 10px;PADDING-LEFT:4px;WIDTH:97.5%;PADDING-RIGHT:4px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;MAX-HEIGHT:200px;FONT-SIZE:8pt;OVERFLOW:auto;BORDER-TOP:gray 1px solid;CURSOR:text;BORDER-RIGHT:gray 1px solid;PADDING-TOP:4px;"&gt;
&lt;div style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; Employee&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;{&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt; EmployeeID { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; FirstName { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt; LastName { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;int&lt;/span&gt;? ManagerID { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; Employee Manager { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;As you might notice there is nothing interesting in the entity itself – just a bunch of properties and the reference to the manager which is another employee. &lt;br /&gt;After we have the entity lets create the context: &lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM:gray 1px solid;BORDER-LEFT:gray 1px solid;PADDING-BOTTOM:4px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:20px 0px 10px;PADDING-LEFT:4px;WIDTH:97.5%;PADDING-RIGHT:4px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;MAX-HEIGHT:200px;FONT-SIZE:8pt;OVERFLOW:auto;BORDER-TOP:gray 1px solid;CURSOR:text;BORDER-RIGHT:gray 1px solid;PADDING-TOP:4px;"&gt;
&lt;div style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; CompanyContext : DbContext&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;{&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Employee&amp;gt; Employees { get; set; }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#region&lt;/span&gt; Ctor&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; CompanyContext()&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    : &lt;span style="COLOR:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="COLOR:#006080;"&gt;&amp;quot;Company&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#region&lt;/span&gt; Methods&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(DbModelBuilder modelBuilder)&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    modelBuilder.Entity&amp;lt;Employee&amp;gt;().&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      HasOptional(e =&amp;gt; e.Manager).&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      WithMany().&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      HasForeignKey(m =&amp;gt; m.ManagerID);&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;In the context you need to implement the OnModelCreating method in order to configure the self reference. We start the configuration with the HasOptional method that indicate that the employee might have a manager (or else he/she is the CEO). Then, for the manager we configure a many side with the WithMany method. In the end we use the HasForeignKey method to indicate what is the foreign key (which is the ManagerID in the example). That is it. &lt;br /&gt;In order to finish the example I’ve created a database initializer that inserts some data: &lt;br /&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM:gray 1px solid;BORDER-LEFT:gray 1px solid;PADDING-BOTTOM:4px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:20px 0px 10px;PADDING-LEFT:4px;WIDTH:97.5%;PADDING-RIGHT:4px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;MAX-HEIGHT:200px;FONT-SIZE:8pt;OVERFLOW:auto;BORDER-TOP:gray 1px solid;CURSOR:text;BORDER-RIGHT:gray 1px solid;PADDING-TOP:4px;"&gt;
&lt;div style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;span style="COLOR:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; ExampleInitializer : DropCreateDatabaseIfModelChanges&amp;lt;CompanyContext&amp;gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;{&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#region&lt;/span&gt; Methods&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; Seed(CompanyContext context)&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    var manager = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; Employee&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      FirstName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp1&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      LastName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp1&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    };&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    var emp1 = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; Employee&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      FirstName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp1&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      LastName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp1&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      Manager = manager&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    };&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    var emp2 = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; Employee&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      FirstName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp2&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      LastName = &lt;span style="COLOR:#006080;"&gt;&amp;quot;emp2&amp;quot;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      Manager = manager&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    };&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    context.Employees.Add(emp1);&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    context.Employees.Add(emp2);&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    context.SaveChanges();&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;and a console application that run the example: &lt;br /&gt;
&lt;div style="BORDER-BOTTOM:gray 1px solid;BORDER-LEFT:gray 1px solid;PADDING-BOTTOM:4px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:20px 0px 10px;PADDING-LEFT:4px;WIDTH:97.5%;PADDING-RIGHT:4px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;MAX-HEIGHT:200px;FONT-SIZE:8pt;OVERFLOW:auto;BORDER-TOP:gray 1px solid;CURSOR:text;BORDER-RIGHT:gray 1px solid;PADDING-TOP:4px;"&gt;
&lt;div style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&lt;span style="COLOR:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;{&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  &lt;span style="COLOR:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="COLOR:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    Database.SetInitializer(&lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; ExampleInitializer());&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    &lt;span style="COLOR:#0000ff;"&gt;using&lt;/span&gt; (var context = &lt;span style="COLOR:#0000ff;"&gt;new&lt;/span&gt; CompanyContext())&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      var query = context.Employees.Include(e =&amp;gt; e.Manager).ToList();&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      &lt;span style="COLOR:#0000ff;"&gt;foreach&lt;/span&gt; (var employee &lt;span style="COLOR:#0000ff;"&gt;in&lt;/span&gt; query)&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      {&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;        Console.WriteLine(&lt;span style="COLOR:#006080;"&gt;&amp;quot;{0} {1}&amp;quot;&lt;/span&gt;, employee.EmployeeID, employee.ManagerID);&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;      }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;    }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:white;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;  }&lt;/pre&gt;&lt;pre style="BORDER-BOTTOM-STYLE:none;PADDING-BOTTOM:0px;LINE-HEIGHT:12pt;BACKGROUND-COLOR:#f4f4f4;MARGIN:0em;BORDER-LEFT-STYLE:none;PADDING-LEFT:0px;WIDTH:100%;PADDING-RIGHT:0px;FONT-FAMILY:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;BORDER-TOP-STYLE:none;COLOR:black;BORDER-RIGHT-STYLE:none;FONT-SIZE:8pt;OVERFLOW:visible;PADDING-TOP:0px;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Here is a figure of the output: &lt;br /&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/Running-Output_7D7353C1.png"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-RIGHT-WIDTH:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;PADDING-TOP:0px;" title="Running Output" border="0" alt="Running Output" src="http://blogs.microsoft.co.il/blogs/gilf/Running-Output_thumb_7E1C09EB.png" width="640" height="339" /&gt;&lt;/a&gt; 
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;Lets sum up, the post includes a running example of how to configure a self reference entity with Code First. I hope it will help you if you get stuck with such a configuration.&lt;/p&gt;
&lt;div style="PADDING-BOTTOM:0px;MARGIN:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;PADDING-TOP:0px;" class="wlWriterHeaderFooter"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/06/03/how-to-configure-a-self-reference-in-code-first.aspx" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" alt="Bookmark and Share" src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" /&gt;&lt;/a&gt;&lt;a style="DISPLAY:none;" href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=840080" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Configuration/default.aspx">Configuration</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Code+First/default.aspx">Code First</category></item><item><title>Sela SDP Conference Sessions Slide Deck and Demos</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx</link><pubDate>Thu, 17 Mar 2011 14:58:36 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:807601</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=807601</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx#comments</comments><description>&lt;h1&gt;Sela SDP Conference Sessions Slide Deck and Demos&lt;/h1&gt;  &lt;p&gt;&lt;a title="SDP Conference Site" href="http://www.sela.co.il/s/sdp/_new/practice2011.html"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDPLogo" border="0" alt="SDPLogo" src="http://blogs.microsoft.co.il/blogs/gilf/SDPLogo_4B4AB849.jpg" width="420" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Yesterday Sela SDP Conference ended after 4 intensive days.    &lt;br /&gt;In the conference I had two breakout sessions about &lt;a title="Creating OData Services with WCF Data Services" href="http://www.sela.co.il/s/sdp/_new/Presentations2.html#WCF1"&gt;&lt;strong&gt;OData&lt;/strong&gt;&lt;/a&gt; and about &lt;a title="Not Just a Designer: Code First in Entity Framework" href="http://www.sela.co.il/s/sdp/_new/Presentations2.html#JustDesigner"&gt;&lt;strong&gt;Code First in Entity Framework&lt;/strong&gt;&lt;/a&gt;.     &lt;br /&gt;First of all I want to thank all the attendees in those sessions. I hope that you had good time and that you enjoyed the sessions and of course the whole conference.     &lt;br /&gt;As always I published the sessions slide decks and demos for you to &lt;a title="My Sela SDP Sessions Slide Deck and Demos" href="http://cid-cc807e0fcc4169f4.office.live.com/browse.aspx/Sessions/SDP%202011"&gt;&lt;strong&gt;download&lt;/strong&gt;&lt;/a&gt;.    &lt;br /&gt;The recording (in &lt;strong&gt;Hebrew&lt;/strong&gt;) of all the conference sessions will be published soon in the &lt;a title="Sela SDP 2011" href="http://www.sela.co.il/s/sdp/_new/practice2011.html"&gt;&lt;strong&gt;conference site&lt;/strong&gt;&lt;/a&gt; so stay tuned.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/17/sela-sdp-conference-sessions-slide-deck-and-demos.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=807601" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/SDP/default.aspx">SDP</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela+Group/default.aspx">Sela Group</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/WCF+Data+Services/default.aspx">WCF Data Services</category></item><item><title>Using Code First Model Configurations Classes</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx</link><pubDate>Mon, 07 Mar 2011 20:48:56 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:802646</guid><dc:creator>Gil Fink</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=802646</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx#comments</comments><description>&lt;h1&gt;Using Code First Model Configurations Classes&lt;/h1&gt;  &lt;p&gt;In the past I explained how to use the &lt;a title="Code First Fluent API" href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/08/ef-feature-ctp5-code-first-fluent-api.aspx"&gt;&lt;strong&gt;Code First Fluent API&lt;/strong&gt;&lt;/a&gt; in order to configure and shape&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_5A60F7C7.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Using Code First Model Configurations Classes" border="0" alt="Using Code First Model Configurations Classes" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_thumb_653DD90F.gif" width="240" height="74" /&gt;&lt;/a&gt; your EDM during runtime. One of the problems that might raise when you use the Fluent API as I showed in the &lt;a title="Code First Fluent API" href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/08/ef-feature-ctp5-code-first-fluent-api.aspx"&gt;&lt;strong&gt;previous post&lt;/strong&gt;&lt;/a&gt; is that the OnModelCreating method might become bloated and hard to read. This is the time to get familiar with another model configuration option which is built inside Code First.&lt;/p&gt;  &lt;h3&gt;Model Configurations Classes&lt;/h3&gt;  &lt;p&gt;When you use Code First you will probably configure the creation of the model in some way. You can use the &lt;a title="Code First Fluent API" href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/08/ef-feature-ctp5-code-first-fluent-api.aspx"&gt;&lt;strong&gt;Code First Fluent API&lt;/strong&gt;&lt;/a&gt; in order to do that. When you use the Fluent API the place that you will use it is the OnModelCreating method in the DbContext class. In very big models that might be a problem. Quickly you will find yourself having a very big and bloated method which holds all the configurations. This is the time for refactoring your code to use model configurations. There are two major classes that you will use: the generic EntityTypeConfiguration and ComplexTypeConfiguration. Both of the classes lives in the System.Data.Entity.ModelConfiguration assembly.&lt;/p&gt;  &lt;h3&gt;Usage Example&lt;/h3&gt;  &lt;p&gt;Lets revisit the DbContext from the &lt;a title="Code First Fluent API" href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/08/ef-feature-ctp5-code-first-fluent-api.aspx"&gt;&lt;strong&gt;previous post&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;   &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;     &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SchoolEntities : DbContext&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Ctor &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SchoolEntities() :&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="color:#006080;"&gt;&amp;quot;MySchool&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Department&amp;gt; Departments { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Methods&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(ModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.OnModelCreating(modelBuilder);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Department&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Property(d =&amp;gt; d.Name).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      IsRequired().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasMaxLength(50);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Department&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Property(d =&amp;gt; d.DepartmentID).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasDatabaseGenerationOption(DatabaseGenerationOption.None);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Department&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasMany(d =&amp;gt; d.Courses).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      WithRequired(c =&amp;gt; c.Department).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasForeignKey(c =&amp;gt; c.DepartmentID).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      WillCascadeOnDelete();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Department&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Ignore(d =&amp;gt; d.Administrator);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Course&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Property(c =&amp;gt; c.Title).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      IsRequired().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasColumnName(&lt;span style="color:#006080;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;);      &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }    &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;If I want to use the EntityTypeConfiguration I’ll create a new class for Department configuration. The class will inherit from EntityTypeConfiguration&amp;lt;Department&amp;gt; and in its constructor I’ll use the Fluent API for configurations. The following code sample shows the DepartmentTypeConfiguration class:&lt;/p&gt;

&lt;p&gt;
  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; DepartmentTypeConfiguration : EntityTypeConfiguration&amp;lt;Department&amp;gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Ctor&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DepartmentTypeConfiguration()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Property(d =&amp;gt; d.Name).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      IsRequired().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasMaxLength(50);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Property(d =&amp;gt; d.DepartmentID).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasDatabaseGenerationOption(DatabaseGenerationOption.None);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    HasMany(d =&amp;gt; d.Courses).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      WithRequired(c =&amp;gt; c.Department).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasForeignKey(c =&amp;gt; c.DepartmentID).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      WillCascadeOnDelete();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Ignore(d =&amp;gt; d.Administrator);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Now that we have the class we will wire it into the ModelBuilder by using the Add method of its Configuration collection. The following code sample show you how to do that:
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SchoolEntities : DbContext&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Ctor&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; SchoolEntities() :&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(&lt;span style="color:#006080;"&gt;&amp;quot;MySchool&amp;quot;&lt;/span&gt;)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Department&amp;gt; Departments { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Methods&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(ModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.OnModelCreating(modelBuilder);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Configurations.Add(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; DepartmentTypeConfiguration());&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Course&amp;gt;().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      Property(c =&amp;gt; c.Title).&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      IsRequired().&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      HasColumnName(&lt;span style="color:#006080;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;During runtime we will get the same EDM whether we use the first method with the configurations inside the OnModelCreating method or the second method of EntityTypeConfiguration.&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;When you use Code First you get a lot of configuration options. If your model is small you can create all the configurations inside the OnModelCreating method. When the model starts to grow you can use the ModelConfiguration classes in order to divide your implementation to small objects with configuration responsibility.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/03/07/using-code-first-model-configurations-classes.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=802646" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Configuration/default.aspx">Configuration</category></item><item><title>My SDP Lecturer Interview</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx</link><pubDate>Sun, 27 Feb 2011 21:40:48 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:798667</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=798667</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx#comments</comments><description>&lt;h1&gt;My SDP Lecturer Interview&lt;/h1&gt;  &lt;p&gt;Last week Sela conducted a live broadcast with trailers to the sessions that will be presented on stage&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/Sela-Logo_4B065827.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="My SDP Lecturer Interview" border="0" alt="My SDP Lecturer Interview" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/Sela-Logo_thumb_338BA3F6.png" width="224" height="78" /&gt;&lt;/a&gt; in the SDP conference. The broadcast was recorded if you want to see me “making a fool” of myself in the live broadcast you can watch the recording of my interview &lt;a href="http://www.sela.co.il/y/gilsprint11"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt; (&lt;strong&gt;in Hebrew&lt;/strong&gt;).    &lt;br /&gt;I’m reminding that I’m going to have two sessions:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sela.co.il/s/sdp/_new/Presentations2.html#WCF1"&gt;&lt;strong&gt;Creating OData Services with WCF Data Services&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;Data is a first-class element of every application. The Open Data Protocol (OData) applies web technologies such as HTTP, AtomPub and JSON to enable a wide range of data sources to be exposed over HTTP in a simple, secure and interoperable way. This session will cover explain what is the Open Data Protocol and how to create OData feeds using WCF Data Services. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sela.co.il/s/sdp/_new/Presentations2.html#JustDesigner"&gt;&lt;strong&gt;Not Just a Designer: Code First and Entity Framework&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;Entity Framework 4 brings many new opportunities for building complex data driven applications. Code First is a new EF capability that provides a code-centric experience for interacting with models and databases. The session will cover several new and future EF features such as Code First, and provide an overview for what to expect from EF in the future.&lt;/p&gt;  &lt;p&gt;Also, I’m attending a tutorial day with &lt;a href="http://www.sela.co.il/speakers.html#idof"&gt;&lt;strong&gt;Ido Flatow&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://www.sela.co.il/speakers.html#erezh"&gt;&lt;strong&gt;Erez Harari&lt;/strong&gt;&lt;/a&gt; about &lt;a href="http://www.sela.co.il/s/SDP/_New/tutorials2.html#Entity"&gt;&lt;strong&gt;Entity Framework in Depth&lt;/strong&gt;&lt;/a&gt; and a MVP Panel which is an ask the experts session.&lt;/p&gt;  &lt;p&gt;Hope to see you at the conference!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/27/my-sdp-lecturer-interview.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=798667" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Lecture/default.aspx">Lecture</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela+Group/default.aspx">Sela Group</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela/default.aspx">Sela</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OData/default.aspx">OData</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/WCF+Data+Services/default.aspx">WCF Data Services</category></item><item><title>ODAC Entity Framework and LINQ Beta was Released</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx</link><pubDate>Fri, 11 Feb 2011 21:12:23 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:784067</guid><dc:creator>Gil Fink</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=784067</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx#comments</comments><description>&lt;h1&gt;ODAC Entity Framework and LINQ Beta was Released&lt;/h1&gt;  &lt;p&gt;If you use Entity Framework in Oracle environments the following news are for you. Oracle published a Beta release of ODAC (Oracle Data Access Components) that supports Entity Framework.    &lt;br /&gt;From Oracle site:    &lt;br /&gt;”ODAC Entity Framework and LINQ Beta has arrived! It includes support for Entity Framework, LINQ to Entities, Model-First, Entity Data Model Wizard, and more.     &lt;br /&gt;The beta includes the 32-bit Oracle Database client 11.2, which can access Oracle Database server 9.2 and higher. It requires Microsoft Visual Studio 2010 and .NET Framework 4.”    &lt;br /&gt;If you want to download the Beta and check it out go to this &lt;a href="http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html"&gt;&lt;strong&gt;link&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/02/11/odac-entity-framework-and-linq-beta-was-released.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=784067" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Oracle/default.aspx">Oracle</category></item><item><title>Book Review – Entity Framework 4 In Action</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx</link><pubDate>Wed, 26 Jan 2011 14:20:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:777248</guid><dc:creator>Gil Fink</dc:creator><slash:comments>9</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=777248</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx#comments</comments><description>&lt;h1&gt;Book Review – Entity Framework 4 In Action&lt;/h1&gt;
&lt;p&gt;I spent some time lately to read the book “Entity Framework 4 in Action” which was written by several &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/EntityFrameworkInAction_0E6A9164.jpg"&gt;&lt;img style="BACKGROUND-IMAGE:none;BORDER-BOTTOM:0px;BORDER-LEFT:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;DISPLAY:inline;FLOAT:right;BORDER-TOP:0px;BORDER-RIGHT:0px;PADDING-TOP:0px;" title="Book Review – Entity Framework 4 In Action" border="0" alt="Book Review – Entity Framework 4 In Action" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/EntityFrameworkInAction_thumb_3E453325.jpg" width="150" height="188" /&gt;&lt;/a&gt;authors – Stefano Mostarda, Marco De Sanctis and Daniele Bochicchio. This book was sent to me by &lt;a href="http://www.manning.com/"&gt;Manning Publications&lt;/a&gt; as part of the &lt;a href="http://www.manning.com/about/meap.html"&gt;Manning Early Access Program&lt;/a&gt; (&lt;a href="http://www.manning.com/about/meap.html"&gt;MEAP&lt;/a&gt;). &lt;/p&gt;
&lt;h3&gt;What You are Going to Gain from The Book?&lt;/h3&gt;
&lt;p&gt;The book is all about Entity Framework 4. The authors don’t assume that you are familiar with the technology and they take you to an Entity Framework tour. At the end of the book you will have a lot of Entity Framework knowledge. The flow of the book is great and there are lots of details and hidden gems that can help you whether you are a junior Entity Framework developer and whether you are a senior Entity Framework developer. The authors take you step by step in the Entity Framework path and late chapters rely on previous ones which help you to build the knowledge gradually.&lt;/p&gt;
&lt;h3&gt;What is Included in The Book?&lt;/h3&gt;
&lt;p&gt;The book isn’t small – approximately 550 pages and includes 19 chapters and 2 appendices (LINQ appendix and Tip &amp;amp; Tricks appendix). The book is divided into 4 parts which are &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Redefining your data access strategy&lt;/li&gt;
&lt;li&gt;Working with Entity Framework&lt;/li&gt;
&lt;li&gt;Mastering Entity Framework &lt;/li&gt;
&lt;li&gt;Applied Entity Framework. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Every part relies on the previous parts and therefore you can’t read the parts as standalone if you are a novice in Entity Framework. If you are a senior Entity Framework developer you can read the parts as standalone but you’ll probably miss some details which are included in previous parts.&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chapter 1: Data access reloaded: Entity Framework &lt;br /&gt;&lt;/strong&gt;The chapter include a discussion about the ORM world and also about the impedance mismatch which lead to the development of ORMs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 2: Getting started with Entity Framework &lt;br /&gt;&lt;/strong&gt;In the chapter the authors shows and describe how to build the Entity Framework part of an application that will be used across the book. During the chapter you’ll get to know what is Entity Framework and will learn a lot of basic stuff.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 3: Querying the model: the basics &lt;br /&gt;&lt;/strong&gt;This chapter is all about the basics of querying the Entity Framework model. You will get to know the ways to do that and what is happening under the hood in the query process.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 4: Querying with LINQ to Entities &lt;br /&gt;&lt;/strong&gt;The chapter will explain in details what is LINQ to Entities and how to use it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 5: Domain model mapping &lt;br /&gt;&lt;/strong&gt;This chapter is all about the EDM. You will hand craft the EDM parts manually and will gain valuable knowledge about its XML.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 6: Understanding entity lifecycle &lt;br /&gt;&lt;/strong&gt;The chapter describes the entity life cycle and the change tracking mechanism. This is a very important chapter since the details in it are very important to the understanding how Entity Framework is working under the hood.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 7: Persisting objects into the database &lt;br /&gt;&lt;/strong&gt;The chapter describe how to perform data manipulations by using Entity Framework.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 8: Handling concurrency and transactions &lt;br /&gt;&lt;/strong&gt;As in the chapter name, you will learn how to handle concurrency and transactions with Entity Framework. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 9: An alternative way of querying: Entity SQL &lt;br /&gt;&lt;/strong&gt;In this chapter you will learn what is Entity SQL and how to apply in order to query the model.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 10: Working with stored procedures &lt;br /&gt;&lt;/strong&gt;This chapter is all about stored procedures and how to use them in Entity Framework environment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 11: Working with functions and views &lt;br /&gt;&lt;/strong&gt;The chapter will explain how to use model defined functions and defining query elements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 12: Exploring EDM metadata &lt;br /&gt;&lt;/strong&gt;In this chapter you will gain the understanding how to use the MetadataWorkspace in order to make runtime EDM metadata queries.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 13: Customizing code and designer &lt;br /&gt;&lt;/strong&gt;In the chapter you learn how to customize the code generation by changing the Entity Framework T4 templates. Also you will learn how to extend the Entity Framework designer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 14: Designing the application around Entity Framework &lt;br /&gt;&lt;/strong&gt;The chapter starts with a Domain Driven Design discussion and shows how Entity Framework can help you to design applications which are more Domain Driven.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 15: Entity Framework and ASP.NET &lt;br /&gt;&lt;/strong&gt;The chapter will guide you how to use Entity Framework with ASP.NET with EntityDataSource. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 16: Entity Framework and N-Tier development &lt;br /&gt;&lt;/strong&gt;The chapter discuss how to include Entity Framework inside N-Tier applications. You will learn about the Self-Tracking entities and how to use DTO design pattern.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 17: Entity Framework and Windows applications&lt;/strong&gt; &lt;br /&gt;The chapter will guide you how to use Entity Framework with WPF and WinForms.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 18: Testing ADO.NET Entity Framework&lt;/strong&gt; &lt;br /&gt;The chapter starts with a discussion about Unit Testing and explains how to test Entity Framework by using Microsoft Testing Framework.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chapter 19: Keeping an eye on performance&lt;/strong&gt; &lt;br /&gt;This chapter is all about performance tuning. I expected more from this chapter but the major things of performance tuning are there. &lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;The Bottom Line&lt;/h3&gt;
&lt;p&gt;This is a good Entity Framework book and I recommend it especially for junior Entity Framework developers. The book&amp;#39;s content is&amp;nbsp;more then enough to get started with Entity Framework&amp;nbsp;and also&amp;nbsp;it is organized well. There are discussions about methodologies like Domain Drive Design and Unit Testing that I really liked which add to the content you are reading and enrich your understanding. The book is doing it job by giving a good deep dive into Entity Framework 4. I give the book 5 stars out of 5.&lt;/p&gt;
&lt;div style="PADDING-BOTTOM:0px;MARGIN:0px;PADDING-LEFT:0px;PADDING-RIGHT:0px;PADDING-TOP:0px;" class="wlWriterHeaderFooter"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/26/book-review-entity-framework-4-in-action.aspx" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" alt="Bookmark and Share" src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" /&gt;&lt;/a&gt;&lt;a style="DISPLAY:none;" href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=777248" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Opinion/default.aspx">Opinion</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Review/default.aspx">Review</category></item><item><title>MIX11 Open Call Voting Has Started Today</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx</link><pubDate>Tue, 25 Jan 2011 14:22:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:776958</guid><dc:creator>Gil Fink</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=776958</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx#comments</comments><description>&lt;h1&gt;MIX11 Open Call Voting Has Started Today&lt;/h1&gt;  &lt;p&gt;&lt;a title="MIX Site" href="http://live.visitmix.com/"&gt;&lt;strong&gt;MIX&lt;/strong&gt;&lt;/a&gt; conference is the biggest Microsoft web conference which occurs every year in Las Vegas. &lt;a title="MIX11 Open Call" href="http://live.visitmix.com/OpenCall"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="300x250_Mix11_011011_US_b" border="0" alt="300x250_Mix11_011011_US_b" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/300x250_Mix11_011011_US_b_14C1949C.gif" width="240" height="200" /&gt;&lt;/a&gt;As in every year Microsoft asked the developers and designers communities to propose sessions that will be part of a community voting. The sessions that will be chosen will be performed on stage at this year’s conference. Since I’m going to MIX11 as in last year, I proposed two sessions and they were chosen to the open call voting. This is the session descriptions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;a title="Building Data-Driven MVC Applications with Entity Framework Code First" href="http://live.visitmix.com/OpenCall/Vote/Session/52"&gt;Building Data-Driven MVC Applications with Entity Framework Code First&lt;/a&gt;         &lt;br /&gt;&lt;/strong&gt;Entity Framework 4 brings many new opportunities for building complex data driven applications. Code First is a new Entity Framework feature that provides a code-centric experience for interacting with models and databases. In this session we will build a full blown MVC application on top of Entity Framework Code First. &lt;/li&gt;    &lt;li&gt;&lt;a title="Creating OData Services with WCF Data Services" href="http://live.visitmix.com/OpenCall/Vote/Session/53"&gt;&lt;strong&gt;Creating OData Services with WCF Data Services&lt;/strong&gt;&lt;/a&gt;       &lt;br /&gt;Data is a first-class element of every application. The Open Data Protocol (OData) applies web technologies such as HTTP, AtomPub and JSON to enable a wide range of data sources to be exposed over HTTP in a simple, secure and interoperable way. This session will cover WCF Data Services best practices so you can use it the right way. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you find this content interesting I encourage you to go and vote for me and maybe you will hear the session in &lt;a title="MIX Site" href="http://live.visitmix.com/"&gt;&lt;strong&gt;MIX11&lt;/strong&gt;&lt;/a&gt;. There are other sessions that you can vote to in this &lt;a title="Open Call Voting Page" href="http://live.visitmix.com/OpenCall"&gt;&lt;strong&gt;link&lt;/strong&gt;&lt;/a&gt; and you can vote up to 10 sessions. The voting will be open up until February 4.&amp;#160; &lt;br /&gt;Happy voting!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/25/mix11-open-call-voting-started.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=776958" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/MVC+Framework/default.aspx">MVC Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Personal/default.aspx">Personal</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Lecture/default.aspx">Lecture</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ASP.NET+MVC+Framework/default.aspx">ASP.NET MVC Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/WCF+Data+Services/default.aspx">WCF Data Services</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/MIX11/default.aspx">MIX11</category></item><item><title>Building Data Access Layers with Entity Framework Slide Deck</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx</link><pubDate>Mon, 24 Jan 2011 19:49:59 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:776686</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=776686</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx#comments</comments><description>&lt;h1&gt;Building Data Access Layers with Entity Framework Slide Deck&lt;/h1&gt;  &lt;p&gt;Today I had an Entity Framework session (“Building Data Access Layers with Entity Framework”) session&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/MSDN-Logo_0692FEAF.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Building Data Access Layers with Entity Framework Slide Deck" border="0" alt="Building Data Access Layers with Entity Framework Slide Deck" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/MSDN-Logo_thumb_76A3B9EA.jpg" width="240" height="73" /&gt;&lt;/a&gt; at Microsoft Ra’anana.     &lt;br /&gt;I want to thank all the attendees who came to hear the session.     &lt;br /&gt;You were a great audience.     &lt;br /&gt;In the session I &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introduced EF.&lt;/li&gt;    &lt;li&gt;Explained the EDM concept.&lt;/li&gt;    &lt;li&gt;Explained how to query the database using EF.&lt;/li&gt;    &lt;li&gt;Explained how to make data manipulation using EF.&lt;/li&gt;    &lt;li&gt;Talked about EF4 and the major features it brought to the framework.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I published the slide deck and demos in my SkyDrive and you can download it from &lt;a title="Session Slide Deck and Demos" href="http://cid-cc807e0fcc4169f4.office.live.com/browse.aspx/Sessions/Building%20Data%20Access%20Layers%20with%20Entity%20Framework"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.    &lt;br /&gt;Enjoy!&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/24/building-data-access-layers-with-entity-framework-slide-deck.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=776686" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Lecture/default.aspx">Lecture</category></item><item><title>Adding Metadata to Entities in The Data Model</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx</link><pubDate>Thu, 20 Jan 2011 19:28:37 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:775344</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=775344</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx#comments</comments><description>&lt;h1&gt;Adding Metadata to Entities in The Data Model&lt;/h1&gt;  &lt;p&gt;Sometimes I’m being asked how to add metadata to a generated entity in Entity Framework. &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_6799D4C9.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Adding Metadata to Entities in The Data Model" border="0" alt="Adding Metadata to Entities in The Data Model" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_thumb_261F2270.gif" width="240" height="74" /&gt;&lt;/a&gt;This metadata can be data annotation or other attributes which can help the developer during runtime. One answer that I give is to edit the T4 template in order to add the attributes. This solution can be combined with the building of an extension to Entity Framework designer which can add more details to the EDM. But it can take some time to develop. Another solution is to create a MetadataType for the entity and use the entity’s partial class behavior to add this type. This post will show you the second solution.&lt;/p&gt;  &lt;h3&gt;Adding Metadata to a Generated Entity&lt;/h3&gt;  &lt;p&gt;In the example I’m going to use the following simple entity:   &lt;br /&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/Entity-Designer-Diagram_52C7DC49.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Entity Designer Diagram" border="0" alt="Entity Designer Diagram" src="http://blogs.microsoft.co.il/blogs/gilf/Entity-Designer-Diagram_thumb_037AE3F5.png" width="185" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This type is part of a Dynamic Data site and the requirements for it are not to show the TypeID and that the Url needs to be up to 100 characters. Since Dynamic Data work with Data Annotations I want to add this metadata to the entity. But the problem is that the entity is generated by Entity Framework code generation. So how can I add the annotations? using the MetadataType attribute. The MetadataType is an attribute that is part of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx"&gt;System.ComponentModel.DataAnnotations&lt;/a&gt; assembly. It indicates that the a data model class has an associated metadata class. The MetadataType attribute gets a type parameter to specify which type is holding the metadata for the class. We can use the fact that the entity is generated as partial class and add the MetadataType attribute to it. Lets look at an example of how to use the MetadataType attribute:    &lt;br /&gt;    &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;     &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; CRMTypeMetadata&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    [ScaffoldColumn(&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;)]&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; TypeID { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    [StringLength(100)]&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Url { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;[MetadataType(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(CRMTypeMetadata))]&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; CRMType&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;The first thing to notice in the example is that I’ve created a public class by the name CRMTypeMetadata which hold the properties annotated with the relevant attributes. The Metadata postfix in the class name is a convention that I encourage you to use. After I create the metadata class all I need to do is to create a partial class for the generated entity and annotate it with the MetadataType attribute. The MetadataType attribute will get as a parameter the type of the metadata type which is CRMTypeMetadata in the example. That is all. 
  &lt;br /&gt;Now the expected behavior was achieved.&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;One of the solutions to add metadata to entities in the Entity Data Model is by using the MetadataType attribute. It is very simple to use and can help you in frameworks like ASP.NET MVC, Dynamic Data, WCF Ria Services and more. &lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=775344" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Dynamic+Data/default.aspx">Dynamic Data</category></item><item><title>SDP Conference 2011 is Coming</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx</link><pubDate>Mon, 17 Jan 2011 16:14:45 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:772813</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=772813</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx#comments</comments><description>&lt;h1&gt;SDP Conference 2011 is Coming&lt;/h1&gt;  &lt;p&gt;&lt;a title="SDP Site" href="http://www.sela.co.il/s/SDP/_New/practice2011.html" target="_blank"&gt;&lt;strong&gt;&lt;a title="SDP Site" href="http://www.sela.co.il/s/SDP/_New/practice2011.html" target="_blank"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SDP Conference 2011 is Coming" border="0" alt="SDP Conference 2011 is Coming" src="http://blogs.microsoft.co.il/blogs/gilf/SDPLogo_46F2881E.jpg" width="420" height="84" /&gt;&lt;/a&gt;        &lt;br /&gt;Sela Developer Practice&lt;/strong&gt;&lt;/a&gt; (SDP) conference will occur between 13 to 16 of March. In this annual conference we (&lt;a href="http://www.sela.co.il/"&gt;&lt;strong&gt;Sela Group&lt;/strong&gt;&lt;/a&gt;) are going to share the current and future Microsoft technologies. The conference will give you a chance to see the best lecturers and leading experts, to be exposed to new technologies and to learn about the Microsoft products that have been launched last year. This is of course an opportunity to meet with colleagues from different organizations and to share knowledge.&lt;/p&gt;  &lt;p&gt;In the conference I’m going to have a session about &lt;a title="Not Just a Designer: Code First and Entity Framework" href="http://www.sela.co.il/s/SDP/_New/Presentations2.html#JustDesigner" target="_blank"&gt;&lt;strong&gt;Code First in Entity Framework&lt;/strong&gt;&lt;/a&gt; and to attend the MVP Panel which is an ask the experts like session. Also, I’m taking a part in an very interesting &lt;a title="Entity Framework Tutorial" href="http://www.sela.co.il/s/SDP/_New/tutorials2.html#Entity"&gt;&lt;strong&gt;Entity Framework seminar&lt;/strong&gt;&lt;/a&gt; along with &lt;a href="http://www.sela.co.il/speakers.html#idof"&gt;&lt;strong&gt;Ido Flatow&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://www.sela.co.il/speakers.html#erezh"&gt;&lt;strong&gt;Erez Harari&lt;/strong&gt;&lt;/a&gt;. In the seminar we are going to talk about O/RM as a concept, explore Entity Framework as an O/RM solution and talk about best practices for using Entity Framework in applications. This is going to be fun.&amp;#160; &lt;/p&gt;  &lt;p&gt;There are other tutorials and sessions that are very recommended so if you want to be a part of the conference you can go to the conference web site –&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://www.sela.co.il/s/SDP/_New/practice2011.html"&gt;&lt;strong&gt;SDP&lt;/strong&gt;&lt;/a&gt;.     &lt;br /&gt;See you there. &lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/17/sdp-conference-2011-is-coming.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=772813" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/SDP/default.aspx">SDP</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela+Group/default.aspx">Sela Group</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Sela/default.aspx">Sela</category></item><item><title>Entity Framework 4 Session</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/02/entity-framework-4-session.aspx</link><pubDate>Sun, 02 Jan 2011 17:51:49 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:762092</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=762092</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/02/entity-framework-4-session.aspx#comments</comments><description>&lt;h1&gt;Entity Framework 4 Session&lt;/h1&gt;  &lt;p&gt;Lately I wasn’t blogging or working because of a very annoying virus. &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/MSDN-Logo_15AD6891.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Entity Framework 4 Session" border="0" alt="Entity Framework 4 Session" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/MSDN-Logo_thumb_2FDDABE8.jpg" width="347" height="106" /&gt;&lt;/a&gt;I’m feeling better now so don’t worry I’ll return blogging gradually. I also wanted to tell you about an open house I’m having at &lt;strong&gt;Microsoft&lt;/strong&gt; about &lt;strong&gt;Entity Framework 4&lt;/strong&gt;. The session will take place at &lt;strong&gt;Microsoft&lt;/strong&gt;’s office at Ra’anana in Monday 24 of January. In the session I’m going to introduce &lt;strong&gt;Entity Framework&lt;/strong&gt; and then what’s new in &lt;strong&gt;Entity Framework 4&lt;/strong&gt;. For more details and for registration you can go to the &lt;a title="Building Data Access Layers with Entity Framework 4 Session" href="https://msevents.microsoft.com/cui/EventDetail.aspx?EventID=1032473450&amp;amp;culture=he-IL" target="_blank"&gt;&lt;strong&gt;following link&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;See you there!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=762092" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Lecture/default.aspx">Lecture</category></item><item><title>EF Feature CTP5: Inheritance Scenarios with Code First Fluent API</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx</link><pubDate>Sun, 12 Dec 2010 17:29:30 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:755257</guid><dc:creator>Gil Fink</dc:creator><slash:comments>4</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/gilf/commentapi.aspx?PostID=755257</wfw:comment><comments>http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx#comments</comments><description>&lt;h1&gt;EF Feature CTP5: Inheritance Scenarios with Code First Fluent API&lt;/h1&gt;  &lt;p&gt;One of the interesting features of &lt;strong&gt;Code First&lt;/strong&gt; &lt;strong&gt;fluent API&lt;/strong&gt; is the ability &lt;a href="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_62349493.gif"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="EF Feature CTP5: Inheritance Scenarios with Code First Fluent API" border="0" alt="EF Feature CTP5: Inheritance Scenarios with Code First Fluent API" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/.Net-Framework-New-Logo_thumb_07BE11F5.gif" width="240" height="74" /&gt;&lt;/a&gt;to configure inheritance in your model. Since one of the strengths of an &lt;strong&gt;O/RM &lt;/strong&gt;solution is its ability to map inheritance then this feature is a must in every mapping scenario (may it be &lt;strong&gt;Model first&lt;/strong&gt;, &lt;strong&gt;Database First&lt;/strong&gt; or &lt;strong&gt;Code First&lt;/strong&gt;). In this post I’ll show how to configure inheritance by using the fluent API.&lt;/p&gt;  &lt;h3&gt;Revisiting Entity Framework Inheritance Types&lt;/h3&gt;  &lt;p&gt;In the past I wrote a series of posts about inheritance mapping in&lt;strong&gt; Entity Framework&lt;/strong&gt; which you can read here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/20/entity-framework-inheritance-types.aspx"&gt;&lt;strong&gt;Entity Framework Inheritance Types&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/22/table-per-type-inheritance-in-entity-framework.aspx"&gt;&lt;strong&gt;Table Per Type Inheritance in Entity Framework&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/24/table-per-hierarchy-inheritance-in-entity-framework.aspx"&gt;&lt;strong&gt;Table Per Hierarchy Inheritance in Entity Framework&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/25/table-per-concrete-type-inheritance-in-entity-framework.aspx"&gt;&lt;strong&gt;Table Per Concrete Type Inheritance in Entity Framework&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Configure Inheritance Using Code First Fluent API&lt;/h3&gt;  &lt;p&gt;In the previous CTPs in order to create inheritance we had to use the &lt;strong&gt;MapHierarchy&lt;/strong&gt; method which was very tedious. In this version the &lt;strong&gt;MapHierarchy&lt;/strong&gt; method was replaced by the &lt;strong&gt;Map&lt;/strong&gt; method (and not in all the inheritance mapping scenarios you’ll need to use it). Lets explore the inheritance types:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Table per type (TPT) inheritance     &lt;br /&gt;&lt;/strong&gt;In order to create this type of mapping all you have to do is to use the &lt;strong&gt;ToTable&lt;/strong&gt; method:    &lt;br /&gt;    &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;     &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;       &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; CourseID { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Days { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime Time { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Location { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Credits { get; set; }    &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; OnLineCourse : Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CourseURL { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; SchoolEntities : DbContext&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Methods&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(ModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;Course&amp;gt;()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      .ToTable(&lt;span style="color:#006080;"&gt;&amp;quot;Courses&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    modelBuilder.Entity&amp;lt;OnLineCourse&amp;gt;()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;     .ToTable(&lt;span style="color:#006080;"&gt;&amp;quot;OnLineCourses&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;You start with creating the inheritance in the model itself (OnLineCourse inherit from Course) and then in the &lt;strong&gt;DbContext&lt;/strong&gt;’s &lt;strong&gt;OnModelCreating&lt;/strong&gt; method you specify that every type will be mapped to its own table using the &lt;strong&gt;ToTable&lt;/strong&gt; method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table per hierarchy (TPH) inheritance
    &lt;br /&gt;&lt;/strong&gt;In order to create this type of mapping you need to use the &lt;strong&gt;Map&lt;/strong&gt; method. In the lambda the &lt;strong&gt;Map&lt;/strong&gt; method gets you write the discriminator field and its values using the &lt;strong&gt;Requires&lt;/strong&gt; and &lt;strong&gt;HasValue&lt;/strong&gt; methods. In the following example you can see how to do exactly that:

  &lt;br /&gt;

  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; CourseID { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Days { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime Time { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Location { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Credits { get; set; }    &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; OnLineCourse : Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CourseURL { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(ModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  modelBuilder.Entity&amp;lt;Course&amp;gt;()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    .Map(c =&amp;gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      c.Requires(&lt;span style="color:#006080;"&gt;&amp;quot;Discriminator&amp;quot;&lt;/span&gt;).HasValue(1);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    })&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    .Map&amp;lt;OnLineCourse&amp;gt;(olc =&amp;gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;      olc.Requires(&lt;span style="color:#006080;"&gt;&amp;quot;Discriminator&amp;quot;&lt;/span&gt;).HasValue(2);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    });&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table per concrete type (TPC) inheritance
    &lt;br /&gt;&lt;/strong&gt;In order to create this type of mapping you will start as it is a table per type inheritance configuration. The only change is the use of the &lt;strong&gt;Map&lt;/strong&gt; method on the concrete type. In the method lambda you will use the &lt;strong&gt;MapInheritedProperties &lt;/strong&gt;method to indicate it is a concrete type:

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; CourseID { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Title { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Days { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime Time { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Location { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Credits { get; set; }    &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; OnLineCourse : Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#region&lt;/span&gt; Properties&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CourseURL { get; set; }&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  &lt;span style="color:#cc6633;"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnModelCreating(ModelBuilder modelBuilder)&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  modelBuilder.Entity&amp;lt;Course&amp;gt;()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    .ToTable(&lt;span style="color:#006080;"&gt;&amp;quot;Courses&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  modelBuilder.Entity&amp;lt;OnLineCourse&amp;gt;()&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;   .Map(olc =&amp;gt;&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;   {&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;     olc.MapInheritedProperties();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;   }).ToTable(&lt;span style="color:#006080;"&gt;&amp;quot;OnLineCourses&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;}&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Here is a simple check to see how the database is created in each inheritance type:
  &lt;br /&gt;

  &lt;div style="border-bottom:gray 1px solid;border-left:gray 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;max-height:200px;font-size:8pt;overflow:auto;border-top:gray 1px solid;cursor:text;border-right:gray 1px solid;padding-top:4px;"&gt;
    &lt;div style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;
      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (SchoolEntities context = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; SchoolEntities())&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;{&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  context.Database.Delete();&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  var course = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Course&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {          &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Credits = 2,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Days = &lt;span style="color:#006080;"&gt;&amp;quot;MF&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Location = &lt;span style="color:#006080;"&gt;&amp;quot;Class 1&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Time = DateTime.Now,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Title = &lt;span style="color:#006080;"&gt;&amp;quot;Entity Framework&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  };&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  var onLineCourse = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; OnLineCourse&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  {          &lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Credits = 3,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Days = &lt;span style="color:#006080;"&gt;&amp;quot;WT&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Location = &lt;span style="color:#006080;"&gt;&amp;quot;Class 2&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Time = DateTime.Now,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    Title = &lt;span style="color:#006080;"&gt;&amp;quot;Entity Framework On Line&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;    CourseURL = &lt;span style="color:#006080;"&gt;&amp;quot;http://www.gilfink.net&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  };&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  context.Courses.Add(course);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  context.Courses.Add(onLineCourse);&lt;/pre&gt;

      &lt;pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;  context.SaveChanges();&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Pay attention that in the TPC inheritance the database will be created properly and the insert will succeed but there will be an exception of overlapping keys (both courses will be created with CourseID of 1 and in the context there will be overlapping). &lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;







&lt;p&gt;Using the&lt;strong&gt; Code First fluent API&lt;/strong&gt; for inheritance is easy. In the post I showed how you can do that using the three main inheritance scenarios in &lt;strong&gt;Entity Framework&lt;/strong&gt;.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/12/12/ef-feature-ctp5-inheritance-scenarios-with-code-first-fluent-api.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a class="addthis_button" href="http://www.addthis.com/bookmark.php?v=250&amp;amp;username=gilf"&gt;&lt;img src="http://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0;" /&gt;&lt;/a&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3672056" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=755257" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Inheritance/default.aspx">Inheritance</category></item></channel></rss>