dotnet -EF 关系和导航属性

本文深入探讨了Entity Framework中一对一及一对多关系的建立方法,详细讲解了如何通过代码实现关联关系,并介绍了关系与导航属性在解决强类型页面展示多表数据问题上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EF关系建立:

 

EF 关系建立后:实例一对多的关系

代码层面:

 

 

通过关系来关联

关系和导航属性:

主要是为了解决强类型页面展示多个表数据的解决方案,

03-08
### Entity Framework Core 入门教程 #### 安装 Entity Framework Core 为了开始使用 Entity Framework (EF),需要先安装 EF 的 NuGet 包。对于大多数项目来说,`Microsoft.EntityFrameworkCore.SqlServer` `Microsoft.EntityFrameworkCore.Tools` 是必需的两个包[^1]。 ```bash dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools ``` 这些命令会将 SQL Server 提供程序以及设计工具添加到项目中,后者用于创建运行迁移。 #### 创建实体类 定义数据模型时,通过 C# 类来表示数据库中的表结构。下面是一个简单的例子展示了如何定义学生注册课程的关系: ```csharp using System.ComponentModel.DataAnnotations; namespace ConstrainsAndRelations.Models { public enum Grade { A, B, C, D } /// <summary> /// 表示学生的选课记录. /// </summary> public class Enrollment { [Key] public int EnrollmentId { get; set; } public Grade? Grade { get; set; } public int StudentId { get; set; } public int CourseId { get; set; } // 导航属性 public virtual Student Student { get; set; } public virtual Course Course { get; set; } } } ``` 此代码片段展示了一个名为 `Enrollment` 的实体类,它包含了与之关联的学生 (`Student`) 及其所修读的课程 (`Course`) 的外键字段,并且还设置了主键 `[Key]` 属性以指定唯一标识符。 #### 配置 DbContext 要操作上述定义的数据模型,则需继承自 `DbContext` 并配置相应的 DbSet 属性以便访问特定类型的实体集合: ```csharp public class SchoolContext : DbContext { public DbSet<Student> Students { get; set; } public DbSet<Course> Courses { get; set; } public DbSet<Enrollment> Enrollments { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer( @"YourConnectionStringHere"); } } ``` 这段代码设置了一个上下文对象 `SchoolContext` 来管理对学生、课程及其之间关系的操作。同时指定了连接字符串指向目标数据库的位置。 #### 执行 CRUD 操作 有了前面的基础之后就可以轻松实现基本的增删改查功能了。比如新增一条报名记录可以这样做: ```csharp var enrollment = new Enrollment() { StudentId = 1, CourseId = 101, Grade = Grade.A }; using(var context = new SchoolContext()) { context.Enrollments.Add(enrollment); await context.SaveChangesAsync(); } ``` 以上就是关于 Entity Framework Core 基础入门的内容介绍,涵盖了从环境搭建到简单使用的全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值