我一直在寻找答案,却找不到合适的答案。我有两个以1:*关系开始的模型:

namespace test.Models
{
    public class Blog
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string BloggerName { get; set; }
        public virtual ICollection<Post> Posts { get; set; }
    }
}

namespace test.Models
{
    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public DateTime DateCreated { get; set; }
        public string Content { get; set; }
        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}


我的ApplicationDbContext是:

namespace test.Models
{
     public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public DbSet<Post> Post { get; set; }
        public DbSet<Blog> Blog { get; set; }
        protected override void OnModelCreating(ModelBuilder builder)
        {
             base.OnModelCreating(builder);
             base.OnModelCreating(builder);
             builder.Entity<Post>().HasRequired(p => p.Blog);
         }
     }
 }


但是,我得到以下错误:


  CS1061:“ EntityTypeBuilder”不包含“ HasRequiered”的定义,并且找不到扩展方法“ HasRequiered”接受类型为“ EntityTypeBuilder”的第一个参数(您是否缺少using指令或程序集引用?)


我对此并不陌生,因此一直在关注各种教程,但所有建议都以这种方式使用它。任何帮助将不胜感激。我要做的就是确保<post>始终是博客的一部分。 HasRequiered始终以红色显示,但出现此错误。

最佳答案

试试这个:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
     base.OnModelCreating(modelBuilder);
     modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
     builder.Entity<Post>().HasRequired(p => p.Blog);
}

10-07 14:35