比如:
文章表:Article
评论记录表:Comment
记住以下几点:
1、关系分为双向导航、单向导航两种
2、关系描述在一端表和多端表都可以,只需要描述一次就行
3、有外键必须指定清楚,有导航属性必须指定清楚
public class Article { public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } public ICollection<Comment> Comments { get; set; } }
public class Comment { public int Id { get; set; } public string Message { get; set; } public Article Article { get; set; } }
注意看:
我给评论表(Comment)写了导航属性,但是没有实体外键,那么这种情况下,EF会默认再给多端生成一个字段(导航属性名称+Id)
设置多端描述:
modelBuilder.Entity<Comment>() .HasOne(x => x.Article) //Has对方(文章)数量为一,所以为One .WithMany(x=>x.Comments); //With己方(评论)数量为多,所以为Many 没有指定实体外键,所以不需要写HasForeignKey
设置一端描述:
modelBuilder.Entity<Article>() .HasMany(x => x.Comments) //Has对方(评论)数量为多,所以为Many .WithOne(x=>x.Article); //With己方(文章)数量为一,所以为One 没有指定实体外键,所以不需要写HasForeignKey
生成迁移文件看看:
就是这么简单哦!
留下您的脚步
最近评论