2016-04-19 8 views
2

私は答えを探していて、適切なものを見つけることができませんでした。私は1と2つのモデルがあります:*で開始するための関係:.HasRequiredモデルで働くことができません

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 'の定義が含まれておらず、' EntityTypeBuilder 'タイプの最初の引数を受け入れる拡張メソッド' HasRequiered 'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありません)

私はこれに新しいので、様々なチュートリアルに従っていますが、このようにすべての使用を推奨します。どんな助けでも大歓迎です。私がしたいのは、<post>が常にブログの一部であることを保証することだけです。 HasRequieredはこのエラーで常に赤で表示されます。

+0

はそれだけで誤植ではないですか?それは 'HasRequiered'ではなく' HasRequired'です –

+0

コンテキストクラスの先頭からusingディレクティブを追加してください。 – pluralMonad

+0

また、namespaceを使用してみてください。using System.Data.Entity.ModelConfiguration.Conventions; –

答えて

2

は、この方法を試してください。

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

ご協力ありがとうございます!これは、上記のコメントのセクションに示されているように、特定の使用法がコメントアウトされている場合には、部分的に機能します。おそらく、この回答として私が「使用している」ものを私が代わって誤ってしまうと、それが大いにクリアされました。どうもありがとう。 –

+0

あなたはこのためにあなたが使っている "使用"を追加できますか?私は認識しているものは見つけられません。 –

関連する問題