学海无涯

导航

统计

EF Core 关系配置 一对多 单向导航属性

一对多 单向导航属性

实体类:

1
2
3
4
5
6
7
8
9
10
11
/// <summary>
   /// 用户
   /// </summary>
   public class User
   {
       public long Id { get; set; }
       /// <summary>
       /// 姓名
       /// </summary>
       public string Name { get; set; }
   }

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <summary>
    /// 请假申请单
    /// </summary>
    public class Leave
    {
        public long Id { get; set; }
        /// <summary>
        /// 申请人
        /// </summary>
        public User Requester { get; set; }
        /// <summary>
        /// 审批人
        /// </summary>
        public User? Approver { get; set; }
        /// <summary>
        /// 说明
        /// </summary>
        public string Remarks { get; set; }
        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime From { get; set; }
        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTime To { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public int Status { get; set; }
    }

  表结构:

 

 

 

 配置类:

1
2
3
4
5
6
7
8
public class UserConfig : IEntityTypeConfiguration<User>
    {
        public void Configure(EntityTypeBuilder<User> builder)
        {
            builder.ToTable("T_Users");
            builder.Property(m => m.Name).IsRequired().HasMaxLength(100).IsUnicode();
        }
    }

  

1
2
3
4
5
6
7
8
9
10
11
12
public class LeaveConfig : IEntityTypeConfiguration<Leave>
   {
       public void Configure(EntityTypeBuilder<Leave> builder)
       {
           builder.ToTable("T_Leaves");
           //单向导航,仅需在“多端”有申明导航属性
           //无主从关系
           //单向导航配置:仅需在WithMany方法中不指定属性即可
           builder.HasOne(m => m.Requester).WithMany();
           builder.HasOne(m => m.Approver).WithMany();
       }
   }

  

posted on   宁静致远.  阅读(80)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示