Nuget:

Microsoft.AspNetCore.All

Microsoft.EntityFrameworkCore//Include 导航属性在此空间

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

微软懒加载文档:

https://docs.microsoft.com/en-us/ef/core/querying/related-data

注入EF:

        public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDbContext<AppDbContext>(options =>
{
//options.UseSqlServer(Configuration.GetConnectionString("SqlConnection"));
options.UseSqlServer(Configuration["ConnectionStrings:SqlConnection"]);
});
services.AddMvc()
.AddJsonOptions(
options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
);//设置禁止循环引用
var serviceProvider = services.BuildServiceProvider(); using (var context = serviceProvider.GetService<AppDbContext>())
{
context.Database.Migrate();
}
}

种子数据:

  protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Teacher>().HasMany(x=>x.Students);//设置关系
modelBuilder.Entity<Teacher>().HasData(new List<Teacher>() {
new Teacher() { age=3, id=1, name="T1"}
,new Teacher() { age=3, id=2, name="S2"}
, new Teacher() { age=3, id=3, name="F3"}
, new Teacher() { age=3, id=4, name="D4"}
});
modelBuilder.Entity<Student>().HasOne(c=>c.Teacher);//设置关系
modelBuilder.Entity<Student>().HasData(new List<Student>() {
new Student() { age=3, id=1, name="T" ,TeacherId=2}
,new Student() { age=3, id=2, name="S" ,TeacherId=2}
, new Student() { age=3, id=3, name="F" ,TeacherId=1}
, new Student() { age=3, id=4, name="D" ,TeacherId=3}
});
base.OnModelCreating(modelBuilder);
}

查询:

[HttpGet]
public IEnumerable<object> Get()
{
AppDbContext db = new AppDbContext();
var student = db.Students.Include(x=>x.Teacher).Where(x=>x.id==1).ToList();
var t = db.Teachers.Include(x => x.Students).Where(x=>x.id==2);
return t.ToList();
}

实体:

 public class Student
{
public int id { get; set; }
public int age { get; set; }
public string name { get; set; }
[ForeignKey("Teacher.Id")]//设置外键,表.主键
public int TeacherId { get; set; }
//[JsonIgnore] 禁止序列化JSON
public virtual Teacher Teacher { get; set; } //= new Teacher();
}
public class Teacher
{
public int id { get; set; }
public int age { get; set; }
public string name { get; set; }
//[JsonIgnore] 禁止序列化JSON
public virtual ICollection<Student> Students { get; set; }// = new List<Student>();
}

最新文章

  1. java中 IndexOf()、lastIndexOf()、substring()的用法
  2. Sublime Text 基础配置
  3. html5 canvas简易版捕鱼达人游戏源码
  4. linux 下如何 makefile
  5. HDOJ 4768 Flyer
  6. mysql删除二进制日志文件
  7. wordpress自动保存远程图片插件 DX-auto-save-images
  8. 设计模式C#实现(六)——单例模式
  9. jquery相关校验以及jquery其他知识总结
  10. Git权威指南 读笔(3)
  11. JavaScript高级程序设计(四): 关键字With的使用
  12. (转载)php flush()刷新不能输出缓冲的原因分析
  13. How to make onActivityResult get called on Nested Fragment
  14. 台式电脑部署xen虚拟化的各种问题
  15. 【译】在Asp.Net中操作PDF – iTextSharp - 操作图片
  16. 产品 线上 保持 和 支持 服务 (Support and maintenance solutions)
  17. 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】
  18. cheatsheet——mac 上的一款可以显示软件所有快捷键的小工具
  19. useradd新建用户和权限分配
  20. plsql本机不安装数据库连接远程数据库

热门文章

  1. uniapp 返回上一页事件监听
  2. CLIP改进工作串讲(上)学习笔记
  3. webapi参数接收不到特殊字符
  4. ERROR StatusLogger No Log4j 2 configuration file found
  5. csp201503-1(矩阵逆时针九十度旋转)
  6. 力扣(leetcode)题库0001-python3
  7. oralce 语句指定的转换无效
  8. docker 部署rocketmq 4.4
  9. ps如何正确擦除文字 如何正确用ps擦除文字
  10. 【SSO单点系列】(10):CAS4.0 之 https证书