通过一个大学课程案例讲解了复杂实体的创建过程及讲解

1.ASP.NET Core 和 Entity Framework Core 系列教程——入门 (1 / 10)

2.ASP.NET Core 和 EF Core系列教程——CRUD (2 / 10)

3.ASP.NET Core 和 EF Core 系列教程——排序、筛选、分页和分组

4.ASP.NET Core 和 EF Core 系列教程——迁移

基于core 2.0,作者只翻译了四篇,剩下的要去官网看机翻的了。

官网地址:https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/complex-data-model?view=aspnetcore-2.0

Student实体讲解
using System;
using System.Collections.Generic; namespace ContosoUniversity.Models
{
public class Student
{
public int ID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; } public ICollection<Enrollment> Enrollments { get; set; }
}
}

ID属性将成为对应于此类的数据库表中的主键。 默认情况下,EF 将会将名为ID或classnameID的属性解析为主键。

Enrollments属性是导航属性。 导航属性中包含与此实体相关的其他实体。 在这个案例下,Student entity中的Enrollments属性会保留所有与Student实体相关的Enrollment。 换而言之,如果在数据库中有两行描述同一个学生的修读情况 (两行的 StudentID 值相同,而且 StudentID 作为外键和某位学生的主键值相同),Student实体的Enrollments导航属性将包含那两个Enrollment实体。

如果导航属性可以具有多个实体 (如多对多或一对多关系),那么导航属性的类型必须是可以添加、 删除和更新条目的容器,如ICollection<T>。 你可以指定ICollection<T>或实现该接口类型,如List<T>或HashSet<T>。 如果指定ICollection<T>,EF在默认情况下创建HashSet<T>集合。

最新文章

  1. EventBus
  2. servlet监听器Listener(理论+例子)
  3. jsp action中附件下载的写法
  4. 【五子棋AI循序渐进】关于VCT,VCF的思考和核心代码
  5. Evolutionary Computing: 4. Review
  6. 主程序底部TabBar功能跟登录页面布局
  7. [转]EntityFramework走马观花之CRUD(上)
  8. CentOS6.4安装Golang环境
  9. How to: Synchronize Files by Using Managed Code
  10. hdu 4465 Candy 数学
  11. B树及2-3树的python实现
  12. golang中设置Host Header的小Tips
  13. C#中一个问号和两个问号(a ?? b)的作用
  14. pyhton:图像旋转
  15. threejs立方体贴图产生边缘锯齿问题
  16. VC6 LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing
  17. 20155235 《网络攻防》 实验八 Web基础
  18. Spring Data JPA @Column 注解无效 打出的语句有下划线
  19. neo4j的配置文件(图文详解)
  20. Nubia Z5S官方4.4 UI2.0音频Audio部分简单分析(也适用于其它8974/8064机型)以及降低破音出现几率的方法

热门文章

  1. Java源代码编译过程
  2. ArrayList之扩容与迭代器
  3. JavaScript之几种创建函数的区别以及优缺点。
  4. Ubantu配置protoc2.5.0
  5. uboot中的快捷菜单的制作说明
  6. 推荐一篇讲arm架构gcc内联汇编的文章
  7. prometheus,alertmanager 报警配置详解
  8. [java] 简单的ConcurrentHashMap
  9. C++ 输出代码所在的文件、行数以及函数名称
  10. request.startAsync()不支持异步操作