Entity Framework 导航属性(2)
1.学校
[Table("School")]
public partial class School
{
public School()
{
Students = new List<Student>();
Teachers = new List<Teacher>();
}
[Key]
public string SchoolId { get; set; } public string Name { get; set; } public virtual ICollection<Student> Students { get; set; } public virtual ICollection<Teacher> Teachers { get; set; }
}
2.学生
[Table("Student")]
public partial class Student
{
public Student()
{
Teachers = new List<Teacher>();
}
[Key]
public string StudentId { get; set; } public string Name { get; set; } public string PhoneId { get; set; } public string SchoolId { get; set; } public virtual School School { get; set; } public ICollection<Teacher> Teachers { get; set; }
}
3.教师
[Table("Teacher")]
public class Teacher
{
public Teacher()
{
Students = new List<Student>();
}
[Key]
public string TeacherId { get; set; } public string Name { get; set; } public string PhoneId { get; set; } public string SchoolId { get; set; } public virtual School School { get; set; } public virtual ICollection<Student> Students { get; set; }
}
上面三个数据表映射成的实体类,关系是学校有多个学生和老师,每个学生和老师互相对应多个
关系配置在DbContext的OnModelCreating方法中配置
一对多
modelBuilder.Entity<Student>()
.HasRequired(a => a.School)
.WithMany(a => a.Students)
.HasForeignKey(a=>a.StudentId);
modelBuilder.Entity<Teacher>()
.HasRequired(a => a.School)
.WithMany(a => a.Teachers)
.HasForeignKey(a => a.TeacherId);
多对多
modelBuilder.Entity<Teacher>()
.HasMany(a => a.Students)
.WithMany(a => a.Teachers)
.Map
(
a =>
{
a.MapLeftKey("TeacherId");
a.MapRightKey("StudentId");
a.ToTable("Teacher_Student");
} );
Entity Framework 导航属性(2)的更多相关文章
- 【EF】Entity Framework实现属性映射约定
Entity Framework Code First属性映射约定中“约定”一词,在原文版中为“Convention”,翻译成约定或许有些不好理解,这也是网上比较大多数的翻译,我们就当这是Entity ...
- Entity Framework实现属性映射约定
Entity Framework Code First属性映射约定中“约定”一词,在原文版中为“Convention”,翻译成约定或许有些不好理解,这也是网上比较大多数的翻译,我们就当这是Entity ...
- Entity FrameWork 实体属性为decimal时默认只保存2位小数
问题描述:当采用EF的DbContext保存decimal类型数据到数据库,默认只会保存小数点后的前2位小数,其余均置0:例如保存101.182352152322,实际存到数据库里的数据为101.18 ...
- Entity Framework 出现 "此 ObjectContext 实例已释放,不可再用于需要连接的操作" 的错误
原因 Entity的导航属性在View中使用,但是该Entity所在的Context已经在Controller中通过 using 释放掉:但是Entity又具有Deferred Query Evalu ...
- Entity Framework Core 生成跟踪列
本文翻译自<Entity Framework Core: Generate tracking columns>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 注意:我使用的是 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (22) -----第五章 加载实体和导航属性之延迟加载
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第五章 加载实体和导航属性 实体框架提供了非常棒的建模环境,它允许开发人员可视化地使 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (23) -----第五章 加载实体和导航属性之预先加载与Find()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-2 预先加载关联实体 问题 你想在一次数据交互中加载一个实体和与它相关联实体. ...
- 《Entity Framework 6 Recipes》中文翻译系列 (25) ------ 第五章 加载实体和导航属性之加载完整的对象图和派生类型上的导航属性
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-5 加载完整的对象图 问题 你有一个包含许多关联实体的模型,你想在一次查询中, ...
- 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7 在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...
随机推荐
- 敏捷软件开发_UML<一>
敏捷软件开发_UML 所看书籍是:敏捷软件开发_原则.模式与实践_C#版(美)马丁著,这本书写的非常棒,感谢作者.该归纳总结的过程按照我读的顺序写. UML 在建造桥梁,零件,自动化设备之前需要建 ...
- Spring高频面试题,你能答的上哪些?(高级篇)
1.什么是 Spring 框架?Spring 框架有哪些主要模块? 2.使用 Spring 框架能带来哪些好处? 3.什么是控制反转(IOC)?什么是依赖注入? 4.请解释下 Spring 框架中的 ...
- vueInitVux中引入bootstrap、jquery步骤
1.先从github上下载 vueInitVux 2.将 build下webpack.base.conf.js 文件 替换成 Html5IQ下的文件 3.npm i 4.npm i jquery -- ...
- webpack关于CommonsChunkPlugin在高版本被移除的替代方案问题
1.在指南的缓存章节里webpack.config.js文件中,使用new的方法会报错 const webpack = require('webpack'); + new webpack.optimi ...
- react-native 标题随页面滚动显示和隐藏
效果图如下: 代码实现: import React, {Component} from 'react'; import { ScrollView, Text, View, FlatList, } fr ...
- Mysql—数据类型详解
在MySQL中常用数据类型主要分为以下几类:数值类型.字符串类型.日期时间类型. 数值类型 字符串类型 日期时间类型 数据类型 字节数 取值范围 格式 备注 year 1 1901~2 ...
- mysql从命令行执行sql语句
mysql -u root -p -e "create database mydb;"
- RC4 对称加密
public class RC4 { byte[] s = new byte[256]; byte[] key; byte keylen;// 4 ~ 16 int pi = 0; int pj = ...
- 第九周周四计划&&周三总结
今天由于自己的原因进度不是很大,今天整理了一下全网关联的思路流程(个人可能就是那种没自信,在思路不知道对不对的情况下不敢下手那种渣渣),和之前的一个学长讨论了一下大概思路流程,如下: (1)使用LDA ...
- 44 dlib鼠标指定目标跟踪
dlib提供了dlib.correlation_tracker()类用于跟踪目标.官方文档入口:http://dlib.net/python/index.html#dlib.correlation_t ...