Code First是一種ORM框架,它允許開發人員在編寫模型類時使用純代碼的方式來描述數據模型,并利用這些模型來創建和更新數據庫。Code First還提供了許多便捷的方法來對數據庫進行操作,使開發人員能夠更加輕松地進行數據管理。
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CodeFirstSample { public class Student { public int StudentID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } public virtual ICollectionCourses { get; set; } } public class Course { public int CourseID { get; set; } public string CourseName { get; set; } public int Credits { get; set; } public virtual ICollection Students { get; set; } } public class SchoolContext : DbContext { public DbSet Students { get; set; } public DbSet Courses { get; set; } } class Program { static void Main(string[] args) { using (var context = new SchoolContext()) { // 創建學生 var students = new List { new Student { FirstName = "Tom", LastName = "Smith", Age = 20 }, new Student { FirstName = "Jane", LastName = "Doe", Age = 21 }, new Student { FirstName = "John", LastName = "Doe", Age = 19 } }; students.ForEach(s =>context.Students.Add(s)); context.SaveChanges(); // 創建課程 var courses = new List { new Course { CourseName = "Math", Credits = 3 }, new Course { CourseName = "History", Credits = 4 }, new Course { CourseName = "English", Credits = 3 } }; courses.ForEach(c =>context.Courses.Add(c)); context.SaveChanges(); // 將學生加入課程 var tom = context.Students.First(s =>s.FirstName == "Tom"); var math = context.Courses.First(c =>c.CourseName == "Math"); tom.Courses = new List { math }; context.SaveChanges(); } Console.WriteLine("Done."); Console.ReadKey(); } } }
在上面的代碼示例中,我們定義了一個名為Student的模型類,其中包含該學生的ID,名字,姓氏和年齡等屬性。類似地,我們也定義了一個名為Course的模型類,其中包含了該課程的ID,名稱和學分等屬性。為了建立模型之間的關系,我們在每個模型類中使用了實例屬性。在SchoolContext類中,我們定義了兩個DbSet屬性來表示我們數據庫中的兩個實體。在Main方法中,我們創建了一些學生和課程的實例,并將它們添加到上下文中。最后,我們使用了單個查詢來將Tom學生添加到數學課程中。通過這種方式,我們可以很容易地使用Code First創建和更新數據庫,而不需要手動編寫大量的SQL代碼。