从 EF Core 5 迁移到 EF Core 6 时出错

Error on migrating from EF Core 5 to EF Core 6

从 EF Core 5 迁移到 EF Core 6 后,我的数据库模型出现问题。
在创建上下文时出现错误:字典中不存在给定的键。
示例应用回购:https://github.com/testApp6/TestApp
有什么问题吗?我该如何解决?

这看起来像是一个错误。所以它应该作为一个问题提出来 here.

用于处理您的属性的反射代码被您的显式接口实现弄糊涂了:

[ForeignKey(nameof(PostTypeEnum))]
[InverseProperty(nameof(Model.PostType.Posts))]
public PostType PostType { get; set; }

[NotMapped]
PostTypeCommon IPost.PostType => PostTypeEnum.ToCommon();

解决方法是从 Post 中删除属性:

[Table(nameof(PostType))]
public class PostType
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public virtual PostTypeEnum Enum { get; set; }

    [MaxLength(20), Required]
    public virtual string Code { get; set; }

    //[InverseProperty(nameof(Post.PostType))]
    public virtual ICollection<Post> Posts { get; set; }
}

您已经在 OnModelCreating 中的导航 属性 的另一侧配置了 Inverse属性。所以这里也不需要。