Razor Pages-通过EF Core实体模型(Model)操作数据库的要点

数据模型通过EF Core映射成数据库表, 使我们不必通过SQL语句既可操作数据库.
  • 模型中只有get访问器的字段在映射时不会创建数据库列
  • 实体的导航属性用于创建数据库的外键
  • 关于限制级联删除规则
    比如这样一个数据模型: 一所大学里系(Department)拥有一个系主任外键(Department.InstructorID), 系主任由一位讲师担任(Instructor.ID).
    如果将 Department.InstructorID 属性定义为不可为 null,EF Core 将配置级联删除规则。 在这种情况下,指定为系主任的讲师被删除时,该系将被删除。 在这种情况下,限制规则将更有意义。 以下 fluent API 将设置限制规则并禁用级联规则。
  • 多对多关系
    实体之间的多对多关系一般要在中间建立一个联接表(JT)拆解为一对多关系。 联接表分为“具有有效负载”的多对多联接表和无有效负载的多对多联接表(纯联接表 PJT)。
    注意:EF 6.x 支持多对多关系的隐式联接表,但 EF Core 不支持
modelBuilder.Entity<Department>()
   .HasOne(d => d.Administrator)
   .WithMany()
   .OnDelete(DeleteBehavior.Restrict)
  • 关于组合键
    联接表中的两个 FK可共同唯一标识 表中的每一行, 因此不需要专用的 PK。 两个FK属性充当组合 PK。 使用 Fluent API 是向 EF Core 指定组合 PK 的唯一方法 .
protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
   
            modelBuilder.Entity<CourseAssignment>(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值