本文主要是介绍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对应的表名为ClassmodelBuilder.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属性值最大长度为32modelBuilder.Entity<ClassInfo>().Property(p=>p.CreateTime).IsRequired();//设置ClassInfo的CreateTime属性为非空modelBuilder.Entity<ClassInfo>().Property(p => p.CreateTime).HasColumnName("CTime");//设置ClassInfo的CreateTime属性名为CTimemodelBuilder.Entity<ClassInfo>().Property(p => p.Remark).HasColumnType("ntext");//设置ClassInfo的Remark属性类型为ntextmodelBuilder.Entity<ClassInfo>().Property(p => p.Remark).HasMaxLength(20);//设置ClassInfo的Remark属性值最大长度为32modelBuilder.Entity<ClassInfo>().Ignore(p => p.NotNeed);//忽略NotNeed字段}
更多:
EF null字段排序后置_Sql中Null字段排在后边
EF Linq To Sql 常用查询整理_常用使用方式整理
EF And 和Or 条件拼接扩展整理
这篇关于Ef Core 使用Entity方式配置外键的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!