<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.logicwiki.co.uk.logicmade.com/index.php?action=history&amp;feed=atom&amp;title=Code_First_Approach</id>
		<title>Code First Approach - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.logicwiki.co.uk.logicmade.com/index.php?action=history&amp;feed=atom&amp;title=Code_First_Approach"/>
		<link rel="alternate" type="text/html" href="https://www.logicwiki.co.uk.logicmade.com/index.php?title=Code_First_Approach&amp;action=history"/>
		<updated>2026-09-12T16:32:37Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://www.logicwiki.co.uk.logicmade.com/index.php?title=Code_First_Approach&amp;diff=29&amp;oldid=prev</id>
		<title>Dt1nh6: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.logicwiki.co.uk.logicmade.com/index.php?title=Code_First_Approach&amp;diff=29&amp;oldid=prev"/>
				<updated>2016-05-09T13:27:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:27, 9 May 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dt1nh6</name></author>	</entry>

	<entry>
		<id>https://www.logicwiki.co.uk.logicmade.com/index.php?title=Code_First_Approach&amp;diff=28&amp;oldid=prev</id>
		<title>Macrop at 07:32, 15 June 2015</title>
		<link rel="alternate" type="text/html" href="https://www.logicwiki.co.uk.logicmade.com/index.php?title=Code_First_Approach&amp;diff=28&amp;oldid=prev"/>
				<updated>2015-06-15T07:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:MVC]]&lt;br /&gt;
[[Category:CSharp]]&lt;br /&gt;
[[Category:Entity Framework]]&lt;br /&gt;
[[Category:Database]]&lt;br /&gt;
[[Category:SQL]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:80%; border: 2px solid red; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
♠ if you don't use data in startup page you can't see data tables as created. (it took 6 hours) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:80%; border: 2px solid red; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
♠ Code First includes derived classes even if only base class is defined as DbSet property. &lt;br /&gt;
♠ (you don't need to add them to dbset if you create them with foreign keys)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:80%; border: 2px solid red; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
♠ The default convention for primary key is that Code First would create a primary key &lt;br /&gt;
♠ for a property if the property name is Id or &amp;lt;class name&amp;gt;Id (NOT case sensitive).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Install-Package EntityFramework -Pre -Version 6.0.0&lt;br /&gt;
&lt;br /&gt;
in '''Model''' Folder Create '''Student.cs''' class&lt;br /&gt;
    &lt;br /&gt;
 using System; &lt;br /&gt;
 using System.Collections.Generic;  &lt;br /&gt;
 namespace ContosoUniversity.Models &lt;br /&gt;
 {&lt;br /&gt;
    public class Student &lt;br /&gt;
    { &lt;br /&gt;
      public int ID { get; set; } &lt;br /&gt;
      public string LastName { get; set; } &lt;br /&gt;
      public string FirstMidName { get; set; } &lt;br /&gt;
      public DateTime EnrollmentDate { get; set; }  &lt;br /&gt;
      public virtual ICollection&amp;lt;Enrollment&amp;gt; Enrollments { get; set; } &lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
in '''Model''' Folder Create '''Enrollment.cs''' class&lt;br /&gt;
&lt;br /&gt;
 namespace ContosoUniversity.Models &lt;br /&gt;
 {     &lt;br /&gt;
    public enum Grade     &lt;br /&gt;
    {         &lt;br /&gt;
      A, B, C, D, F     &lt;br /&gt;
    } &lt;br /&gt;
 &lt;br /&gt;
    public class Enrollment     &lt;br /&gt;
    {         &lt;br /&gt;
      public int EnrollmentID { get; set; }&lt;br /&gt;
      public int CourseID { get; set; }&lt;br /&gt;
      public int StudentID { get; set; }&lt;br /&gt;
      public Grade? Grade { get; set; }&lt;br /&gt;
      public virtual Course Course { get; set; }&lt;br /&gt;
      public virtual Student Student { get; set; }     &lt;br /&gt;
    } &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
in '''Model''' Folder Create '''Course.cs''' class&lt;br /&gt;
&lt;br /&gt;
 using System.Collections.Generic; &lt;br /&gt;
 using System.ComponentModel.DataAnnotations.Schema;&lt;br /&gt;
   &lt;br /&gt;
 namespace ContosoUniversity.Models &lt;br /&gt;
 {     &lt;br /&gt;
   public class Course     &lt;br /&gt;
   {         &lt;br /&gt;
      [DatabaseGenerated(DatabaseGeneratedOption.None)]         &lt;br /&gt;
      public int CourseID { get; set; }   &lt;br /&gt;
      public string Title { get; set; }&lt;br /&gt;
      public int Credits { get; set; }&lt;br /&gt;
      public virtual ICollection&amp;lt;Enrollment&amp;gt; Enrollments { get; set; }     &lt;br /&gt;
    } &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Create a folder in root as '''DAL''' &lt;br /&gt;
Create '''BackOfficeContext.cs''' file in '''DAL'''&lt;br /&gt;
&lt;br /&gt;
 using ContosoUniversity.Models; &lt;br /&gt;
 using System.Data.Entity; &lt;br /&gt;
 using System.Data.Entity.ModelConfiguration.Conventions;  &lt;br /&gt;
 &lt;br /&gt;
 namespace ContosoUniversity.DAL &lt;br /&gt;
 {     &lt;br /&gt;
    public class SchoolContext : DbContext     &lt;br /&gt;
    {              &lt;br /&gt;
      public SchoolContext() : base(&amp;quot;SchoolContext&amp;quot;)         {         &lt;br /&gt;
    }          &lt;br /&gt;
    public DbSet&amp;lt;Student&amp;gt; Students { get; set; }&lt;br /&gt;
    public DbSet&amp;lt;Enrollment&amp;gt; Enrollments { get; set; }&lt;br /&gt;
    public DbSet&amp;lt;Course&amp;gt; Courses { get; set; }&lt;br /&gt;
 &lt;br /&gt;
    protected override void OnModelCreating(DbModelBuilder modelBuilder)         &lt;br /&gt;
    {             &lt;br /&gt;
      modelBuilder.Conventions.Remove&amp;lt;PluralizingTableNameConvention&amp;gt;();         &lt;br /&gt;
    }     &lt;br /&gt;
   } &lt;br /&gt;
 }   &lt;br /&gt;
&lt;br /&gt;
Create a file named '''BackOfficeInitializer.cs''' in '''DAL''' folder&lt;br /&gt;
&lt;br /&gt;
 using System; &lt;br /&gt;
 using System.Collections.Generic; &lt;br /&gt;
 using System.Linq; &lt;br /&gt;
 using System.Web; &lt;br /&gt;
 using System.Data.Entity; &lt;br /&gt;
 using ContosoUniversity.Models;&lt;br /&gt;
  &lt;br /&gt;
 namespace ContosoUniversity.DAL &lt;br /&gt;
 {     &lt;br /&gt;
   public class SchoolInitializer : System.Data.Entity. DropCreateDatabaseIfModelChanges&amp;lt;SchoolContext&amp;gt;     &lt;br /&gt;
   {         &lt;br /&gt;
      protected override void Seed(SchoolContext context)&lt;br /&gt;
      {             &lt;br /&gt;
        var students = new List&amp;lt;Student&amp;gt;&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         //---------------------------------------------------------------------------------------------------------&lt;br /&gt;
         // I think the correct syntax is this one below (ALI)&lt;br /&gt;
         //---------------------------------------------------------------------------------------------------------&lt;br /&gt;
          &amp;lt;b style=&amp;quot;color:red;&amp;quot;&amp;gt;new Student{) {FirstMidName=&amp;quot;Carson&amp;quot;,LastName=&amp;quot;Alexander&amp;quot;,EnrollmentDate=DateTime.Pa rse(&amp;quot;2005-09-01&amp;quot;)},&amp;lt;/b&amp;gt;         &lt;br /&gt;
         //---------------------------------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Carson&amp;quot;,LastName=&amp;quot;Alexander&amp;quot;,EnrollmentDate=DateTime.Pa rse(&amp;quot;2005-09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Meredith&amp;quot;,LastName=&amp;quot;Alonso&amp;quot;,EnrollmentDate=DateTime.Par se(&amp;quot;2002-09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Arturo&amp;quot;,LastName=&amp;quot;Anand&amp;quot;,EnrollmentDate=DateTime.Parse( &amp;quot;2003-09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Gytis&amp;quot;,LastName=&amp;quot;Barzdukas&amp;quot;,EnrollmentDate=DateTime.Par se(&amp;quot;2002-09-01&amp;quot;)}, &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Yan&amp;quot;,LastName=&amp;quot;Li&amp;quot;,EnrollmentDate=DateTime.Parse(&amp;quot;2002- 09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Peggy&amp;quot;,LastName=&amp;quot;Justice&amp;quot;,EnrollmentDate=DateTime.Parse (&amp;quot;2001-09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Laura&amp;quot;,LastName=&amp;quot;Norman&amp;quot;,EnrollmentDate=DateTime.Parse( &amp;quot;2003-09-01&amp;quot;)},             &lt;br /&gt;
          new Student{FirstMidName=&amp;quot;Nino&amp;quot;,LastName=&amp;quot;Olivetto&amp;quot;,EnrollmentDate=DateTime.Parse (&amp;quot;2005-09-01&amp;quot;)}             &lt;br /&gt;
         };  &lt;br /&gt;
         students.ForEach(s =&amp;gt; context.Students.Add(s));&lt;br /&gt;
         context.SaveChanges();             &lt;br /&gt;
 &lt;br /&gt;
         var courses = new List&amp;lt;Course&amp;gt;             &lt;br /&gt;
         {             &lt;br /&gt;
            new Course{CourseID=1050,Title=&amp;quot;Chemistry&amp;quot;,Credits=3,},             &lt;br /&gt;
            new Course{CourseID=4022,Title=&amp;quot;Microeconomics&amp;quot;,Credits=3,},     &lt;br /&gt;
            new Course{CourseID=4041,Title=&amp;quot;Macroeconomics&amp;quot;,Credits=3,},   &lt;br /&gt;
            new Course{CourseID=1045,Title=&amp;quot;Calculus&amp;quot;,Credits=4,},             	&lt;br /&gt;
            new Course{CourseID=3141,Title=&amp;quot;Trigonometry&amp;quot;,Credits=4,},          &lt;br /&gt;
            new Course{CourseID=2021,Title=&amp;quot;Composition&amp;quot;,Credits=3,},   &lt;br /&gt;
            new Course{CourseID=2042,Title=&amp;quot;Literature&amp;quot;,Credits=4,}             &lt;br /&gt;
          };&lt;br /&gt;
          courses.ForEach(s =&amp;gt; context.Courses.Add(s));  &lt;br /&gt;
          context.SaveChanges();             &lt;br /&gt;
&lt;br /&gt;
          var enrollments = new List&amp;lt;Enrollment&amp;gt;             &lt;br /&gt;
          {             &lt;br /&gt;
          new Enrollment{StudentID=1,CourseID=1050,Grade=Grade.A},     &lt;br /&gt;
          new Enrollment{StudentID=1,CourseID=4022,Grade=Grade.C},        &lt;br /&gt;
          new Enrollment{StudentID=1,CourseID=4041,Grade=Grade.B},     &lt;br /&gt;
          new Enrollment{StudentID=2,CourseID=1045,Grade=Grade.B},    	  &lt;br /&gt;
          new Enrollment{StudentID=2,CourseID=3141,Grade=Grade.F},      &lt;br /&gt;
          new Enrollment{StudentID=2,CourseID=2021,Grade=Grade.F},      &lt;br /&gt;
          new Enrollment{StudentID=3,CourseID=1050},             &lt;br /&gt;
          new Enrollment{StudentID=4,CourseID=1050,},             &lt;br /&gt;
          new Enrollment{StudentID=4,CourseID=4022,Grade=Grade.F},           &lt;br /&gt;
          new Enrollment{StudentID=5,CourseID=4041,Grade=Grade.C},      &lt;br /&gt;
          new Enrollment{StudentID=6,CourseID=1045},             &lt;br /&gt;
          new Enrollment{StudentID=7,CourseID=3141,Grade=Grade.A},             &lt;br /&gt;
        };             &lt;br /&gt;
        enrollments.ForEach(s =&amp;gt; context.Enrollments.Add(s));     &lt;br /&gt;
        context.SaveChanges();         &lt;br /&gt;
        }     &lt;br /&gt;
      } &lt;br /&gt;
  } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in '''Web.Config''' file...&lt;br /&gt;
 &amp;lt;entityFramework&amp;gt;   &lt;br /&gt;
    &amp;lt;contexts&amp;gt;     &lt;br /&gt;
      &amp;lt;context type=&amp;quot;ContosoUniversity.DAL.SchoolContext, ContosoUniversity&amp;quot;&amp;gt;  &lt;br /&gt;
        &amp;lt;databaseInitializer type=&amp;quot;ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity&amp;quot; /&amp;gt;     &lt;br /&gt;
      &amp;lt;/context&amp;gt;   &lt;br /&gt;
    &amp;lt;/contexts&amp;gt;   &lt;br /&gt;
		&lt;br /&gt;
    &amp;lt;defaultConnectionFactory type=&amp;quot;System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework&amp;quot;&amp;gt;     &lt;br /&gt;
      &amp;lt;parameters&amp;gt;       &lt;br /&gt;
        &amp;lt;parameter value=&amp;quot;v11.0&amp;quot; /&amp;gt;     &lt;br /&gt;
      &amp;lt;/parameters&amp;gt;   &lt;br /&gt;
    &amp;lt;/defaultConnectionFactory&amp;gt;   &lt;br /&gt;
    &amp;lt;providers&amp;gt;     &lt;br /&gt;
      &amp;lt;provider invariantName=&amp;quot;System.Data.SqlClient&amp;quot; type=&amp;quot;System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer&amp;quot; /&amp;gt;   &lt;br /&gt;
      &amp;lt;/providers&amp;gt; &lt;br /&gt;
    &amp;lt;/entityFramework&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And Again in '''web.config''' file &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;connectionStrings&amp;gt;     &lt;br /&gt;
   &amp;lt;add name=&amp;quot;SchoolContext&amp;quot; connectionString=&amp;quot;AttachDBFilename=|DataDirectory|\ContosoUniversity1.mdf;Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;&amp;quot; providerName=&amp;quot;System.Data.SqlClient&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;/connectionStrings&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;appSettings&amp;gt;   &lt;br /&gt;
   &amp;lt;add key=&amp;quot;webpages:Version&amp;quot; value=&amp;quot;3.0.0.0&amp;quot; /&amp;gt;   &lt;br /&gt;
   &amp;lt;add key=&amp;quot;webpages:Enabled&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;   &lt;br /&gt;
   &amp;lt;add key=&amp;quot;ClientValidationEnabled&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;   &lt;br /&gt;
   &amp;lt;add key=&amp;quot;UnobtrusiveJavaScriptEnabled&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt; &lt;br /&gt;
 &amp;lt;/appSettings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The model backing the context has changed since the database was created Problem ==&lt;br /&gt;
in Global.asax &lt;br /&gt;
 using System.Data.Entity;&lt;br /&gt;
 using LogicBO.DAL;&lt;br /&gt;
 using LogicBO.Models;&lt;br /&gt;
 ......       &lt;br /&gt;
 protected void Application_Start()&lt;br /&gt;
 { &lt;br /&gt;
 Database.SetInitializer&amp;lt;BoContext&amp;gt;(new DropCreateDatabaseIfModelChanges&amp;lt;BoContext&amp;gt;());&lt;br /&gt;
&lt;br /&gt;
== The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties ==&lt;br /&gt;
 .Where(q =&amp;gt; DbFunctions.TruncateTime(q.DateStart) &amp;gt;= DateTime.Now.Date)&lt;/div&gt;</summary>
		<author><name>Macrop</name></author>	</entry>

	</feed>