第一步、创建一个文章实体类和评论实体类
文章类
namespace LcyEfDemo.Core.Models
{
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public List<Comment> Comments { get; set; } = new List<Comment>();
}
}
评论类
namespace LcyEfDemo.Core.Models
{
public class Comment
{
public int Id { get; set; }
public Article Article { get; set; }
public string Content { get; set; }
public int ArticleId { get; set; }
}
}
第二步、创建两个实体类的配置类,并在多端建立一对多关系,这里新版本的EF Core不用添加ArticleId的外键关系了
using LcyEfDemo.Core.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace LcyEfDemo.Core.ModelsConfig
{
public class CommentConfig : IEntityTypeConfiguration<Comment>
{
public void Configure(EntityTypeBuilder<Comment> builder)
{
builder.HasOne<Article>(c => c.Article).WithMany(c => c.Comments).IsRequired();
builder.Property(c => c.Content).HasMaxLength(50).IsUnicode();
}
}
}
这里理解了下面一句话就很好理解上面的关系了“我这个实体有一个他,他又有多个我”,用上面的例子举例:Comment有一个Article,Article中有多个Comment,站在这个评论配置类的角度来看,其实就是这个评论对应的一个文章,反之这个文章里面又有多个评论