2017-12-24 4 views
2

Ich habe eine viele zu viele Beziehung in meinem Code zuerst.Fügen Sie Entität in viele zu viele Beziehung in Entity Framework

public class Post 
{ 
    public int Id { get; set; } 
    public ICollection<Tag> Tags { get; set; } 
} 

public class Tag 
{ 
    public int Id { get; set; } 
    public ICollection<Post> Posts { get; set; } 
} 

modelBuilder.Entity<Post>().HasMany(c => c.Tags).WithMany(a => a.Posts);  

Wenn ich habe ein PostId und ein TagId, Wie ich Beziehung mit einzelner Abfrage in Entity Framework einfügen kann (ohne Last Post oder Tag und fügen Beziehung zu dem)

Antwort

1

Dies ist einer der Nachteile der impliziten Junction-Tabelle.

Noch ist es möglich, zu tun, was man durch die Schaffung von zwei „Stub“ Entitäten fragen, bringen sie auf den Kontext (das Erzählen EF, dass sie existieren, werden), und das Hinzufügen einer von ihnen zu der Sammlung des anderen:

Aufgrund der hack-ish Natur der oben genannten Technik, stellen Sie sicher, es nur mit kurzlebigen Kontexten zu verwenden, die speziell für die Operation zugeordnet sind.

0

Wenn ich Ihre Frage richtig verstanden hat, Sie möchten das Einfügen von Navigationseigenschaften ignorieren. Sie können state der Sammlungseigenschaft als 'UnChanged' ändern, um das Einfügen der Eigenschaft zu vermeiden.

Es wird so aussehen;

_context.Posts.Add(post); 

_context.Entry(post.Tags).State = EntityState.Unchanged; 

_context.SaveChanges(); 
Verwandte Themen