2017-06-11 2 views
0

Je suis très nouveau à Entity Framework et j'essaie de comprendre les relations. J'ai trouvé ce code:HasOne pas trouvé dans EF 6

class MyContext : DbContext 
{ 
    public DbSet<Post> Posts { get; set; } 
    public DbSet<Tag> Tags { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<PostTag>() 
      .HasKey(t => new { t.PostId, t.TagId }); 

     modelBuilder.Entity<PostTag>() 
      .HasOne(pt => pt.Post) 
      .WithMany(p => p.PostTags) 
      .HasForeignKey(pt => pt.PostId); 

     modelBuilder.Entity<PostTag>() 
      .HasOne(pt => pt.Tag) 
      .WithMany(t => t.PostTags) 
      .HasForeignKey(pt => pt.TagId); 
    } 
} 

public class Post 
{ 
    public int PostId { get; set; } 
    public string Title { get; set; } 
    public string Content { get; set; } 

    public List<PostTag> PostTags { get; set; } 
} 

public class Tag 
{ 
    public string TagId { get; set; } 

    public List<PostTag> PostTags { get; set; } 
} 

public class PostTag 
{ 
    public int PostId { get; set; } 
    public Post Post { get; set; } 

    public string TagId { get; set; } 
    public Tag Tag { get; set; } 
} 

Je reçois une erreur lors de la compilation du code:

« EntityTypeConfiguration » ne contient pas de définition pour « hasOne » et aucune méthode d'extension « hasOne » accepter un premier argument de type « EntityTypeConfiguration » n'a pu être trouvée (êtes-vous manque une directive ou une référence d'assemblage? en utilisant)

J'ai essayé de le trouver o n Google et StackOverflow, mais la seule chose que j'ai trouvé était de savoir comment l'utiliser et non pourquoi cela donne des problèmes. Est-ce que je manque réellement une référence? Si oui, lequel?

Répondre