首页 > 代码库 > EF 下的code fist 模式编程
EF 下的code fist 模式编程
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个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。