我一直在寻找答案,却找不到合适的答案。我有两个以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);
}