EF 下的code fist 模式编程
2018-06-18 04:22:38来源:未知 阅读 ()
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;
不懂的可以咨询我,微信如下:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- LeetCode 287. 寻找重复数 2020-05-31
- equals 和 hashCode 到底有什么联系? 2020-05-25
- HashMap理解 2020-05-24
- LeetCode 5. 最长回文子串 2020-05-22
- LeetCode 21. 合并两个有序链表 2020-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash