Zwei ein bis viele Assoziationen auf einem Bindema
-
25-10-2019 - |
Frage
Ich habe einen Linktable namens namen so was?:
public class BlogsBlogPostConfiguration : EntityTypeConfiguration<BlogsBlogPost>
{
public BlogsBlogPostConfiguration()
{
this.HasRequired(bb => bb.Blog)
.WithMany(b => b.BlogsBlogPosts)
.HasForeignKey(bb =>bb.BlogID);
this.HasRequired(bb => bb.BlogPost)
.WithMany(bp => bp.BlogsBlogPosts)
.HasForeignKey(bb => bb.BlogPostID);
}
}
Lösung
Ja. Die einzige Frage, die für mich übrig bleibt, ist: Was ist mit der primären Schlüsseleigenschaft von BlogsBlogPost
? Zwei Optionen:
Sie haben entweder eine eigene Schlüsseleigenschaft wie
public int BlogsBlogPostID { get; set; }
oderpublic int ID { get; set; }
in dieser Entität. In diesem Fall Kombinationen von ((BlogID
,BlogPostID
) Muss nicht einzigartig sein.Oder Sie haben einen zusammengesetzten Schlüssel, der aus (besteht aus (
BlogID
,BlogPostID
). Sie müssten dies mit dem markieren[Key]
Annotation oder definieren Sie es in fließender API:this.HasKey(bbp => new { bbp.BlogID, bbp.BlogPostID });
Jetzt Kombinationen von ((
BlogID
,BlogPostID
) muss einzigartig sein. Dies ist eher ein "Viele zu viele Beziehung zu zusätzlichen Daten in der Link-Tabelle" Art der Beziehung.
Beide Modelle sind möglich. Was zu bedienen ist, hängt von Ihren Geschäftsbedürfnissen ab.