Ef Core 使用Entity方式配置外键

一、Ef Core 使用Entry方式配置外键

当一个表中有多个外键指向同一个表时候,需要使用Entity方式执行具体外键约束名称,使用方法如下:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<DycUserConcern>(entity =>
    {
        entity.HasOne(q => q.MemberInfo2)
                .WithMany(q=>q.DeConcernList)
                .HasForeignKey(q => q.MemberID2)
                .HasConstraintName("FK__DycUserCo__Membe__690797E6");
    });
}

二、Entity方式配置其他约束,整理

 /// 实体映射到数据库中,EF会将表名创建为实体名的复数形式,这里就是强制使表名创建为实体名
        /// </summary>
        /// <param name="modelBuilder"></param>
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            modelBuilder.Entity<ClassInfo>().ToTable("Class");//设置ClassInfo对应的表名为Class
            modelBuilder.Entity<ClassInfo>().Property(p=>p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);//设置ClassInfo的Id为自增长
            modelBuilder.Entity<ClassInfo>().HasKey(p=>p.Id);//设置ClassInfo的Id属性为主键
            modelBuilder.Entity<ClassInfo>().Property(p=>p.Name).IsRequired();//设置ClassInfo的Name属性为非空
            modelBuilder.Entity<ClassInfo>().Property(p=>p.Name).HasMaxLength(32);//设置ClassInfo的Name属性值最大长度为32
            modelBuilder.Entity<ClassInfo>().Property(p=>p.CreateTime).IsRequired();//设置ClassInfo的CreateTime属性为非空
            modelBuilder.Entity<ClassInfo>().Property(p => p.CreateTime).HasColumnName("CTime");//设置ClassInfo的CreateTime属性名为CTime
            modelBuilder.Entity<ClassInfo>().Property(p => p.Remark).HasColumnType("ntext");//设置ClassInfo的Remark属性类型为ntext
            modelBuilder.Entity<ClassInfo>().Property(p => p.Remark).HasMaxLength(20);//设置ClassInfo的Remark属性值最大长度为32
            modelBuilder.Entity<ClassInfo>().Ignore(p => p.NotNeed);//忽略NotNeed字段
        }

更多:

EF null字段排序后置_Sql中Null字段排在后边

EF Linq To Sql 常用查询整理_常用使用方式整理

 EF And 和Or 条件拼接扩展整理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值