EF 下的code fist 模式編程

來源:互聯網
上載者:User

標籤:實體   rip   include   one   log   div   system   uri   teacher   

EF 分兩種模式 codefirst(就是不知道資料是啥,也沒有資料庫)  和 database fist (資料已經設計好了)

首先開啟vs  建立一個項目 建立一個控制台程式

然後 建立一個Teacher 類 

    public class Teacher    {        public int TeacherId { get; set; }        public string Name { get; set; }        public string Country { get; set; }        public string Description { get; set; }        public List<Student> Students { get; set; }//一個老師有多個學生,同下說明        //一個老師有多個教程,這裡EF會自動化佈建外鍵到對應的Course 表         //注意course這個表要寫 public Teacher Teacher { get; set; } 這樣才能對應        public List<Course> Courses { get; set; }    }

然後建立一個Student類  這裡Teacher類和 Student 是1:M的關係(一對多)

  public class Student    {        public int StudentId { get; set; }        public string Name { get; set; }        public string Owner { get; set; }        public Teacher Teacher { get; set; }//一個學生對應一個老師(這裡也可以多個老師)可以自己寫        public IList<Course> Courses { get; set; }//一個學生多門課    }

同時建立一個Course  課程類 這裡 每個學生,每個老師都有自己的課

 public  class Course    {        public int CourseId { get; set; }        public string Name { get; set; }        public Student Student { get; set; }        public Teacher Teacher { get; set; }    }

等表建好了以後我們要進行往資料庫插入資料了,這裡需要EF的實體DefaultContext 需要繼承  DbContext 這個父類

對應的表寫在下面

    class DefaultContext : DbContext    {        public DbSet<Teacher> Teachers { get; set; }        public DbSet<Student> Students { get; set; }        public DbSet<Course> Courses { get; set; }            }

 

現在萬事具備之前實現,現在我們在Program.cs中實現如下代碼

 for (int i = 11; i < 21; i++)            {                var d = DateTime.Now.Date.ToString("yyyyMM");                var destination = new Teacher                {                    Country = "Indonesia" + i.ToString(),                    Description = "EcoTourism at its best in exquisite Bali",                    Name = "Bali"                };                var student = new Student                {                    Name = "Indonesia" + i.ToString(),                    Teacher = destination                };                var couse = new Course                {                    Name = "Indonesia" + i.ToString(),                    Student = student,                    Teacher = destination                };                using (var context = new DefaultContext())                {                    context.Teachers.Add(destination);                    context.Students.Add(student);                    context.Courses.Add(couse);                    context.SaveChanges();                }            }

此刻開啟你的sqlserver  如下所示:

找到 DefaultContext  查看資料是否匯入成功

 

 這樣熱騰騰的三個表就進去啦,這就是 EF的code first  ,相關的表的外鍵會自動建立

 

相關查詢可以用如下代碼

IList<Teacher> c2 = context.Teachers.AsNoTracking().Include("Students").Include("Courses").ToList();IList<Teacher> c = context.Teachers.AsNoTracking().Include("Students").ToList();

注意引入 using System.Data.Entity;

不懂的可以諮詢我,如下:

 

EF 下的code fist 模式編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.