EF-core-eins-zu-viele-Beziehungen HasOne().WithMany() vs HasMany().WithOne()

Sagen wir, ich habe die folgenden 2 Modelle:

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; set; }
}

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

    public Blog Blog { get; set; }
}

Nun, wenn ich will, um zu konfigurieren Sie die Modelle von Beziehungen in DbContext ist, gibt es einen Unterschied zwischen:

modelBuilder.Entity<Post>()
            .HasOne(p => p.Blog)
            .WithMany(b => b.Posts);

und

modelBuilder.Entity<Blog>()
            .HasMany(b => b.Posts)
            .WithOne(p => p.blog);

und wenn es eine diffrence, was ist es? soll ich schreiben beide oder nur einer von Ihnen?

Als Anmerkung: muss ich definieren von Fremdschlüsseln? Basierend auf meinem wissen über Datenbanken, Sie können nicht erstellen Sie Beziehungen ohne foreign keys, aber EF nicht erforderlich, dass Sie auf foreign-key-Felder. Also, wie funktioniert das EF-behandelt Beziehungen, ohne zu wissen, foreign keys? Tut es dazu führen, dass die Leistung fällt oder bugs?

InformationsquelleAutor soorena12 | 2016-09-30

Schreibe einen Kommentar