2017-05-09 2 views
0

als ich zur Zeit zu lernen, wie Entity Framework arbeitet ich folgende Frage bekam:C#/EF Modellcode - Beziehung Pflichtfelder

auf eine grundlegende 1 zu erstellen: n-Beziehung (Code-first) las ich habe, dass ich tun soll Es ist wie folgt:

public class Post 
{ 
    public int PostId { get; set; } 
    [MaxLength(200)] 
    public string Title { get; set; } 
    public string Content { get; set; } 

    public int BlogId { get; set; } 
    public Blog Blog { get; set; } 
} 

Es gibt sowohl Referenz-und Id-Feld für die Buch-Post-Beziehung. Ist das erforderlich?

ich die Datenbankverbindung manuell immer tat und hatte nur das Referenzfeld

public Blog Blog { get; set; } 

So kann ich den Blog Id auch zugreifen können, und ich muss nicht halten beide up-to-date. Es scheint, als ob die EF-Migrationen nicht so funktionieren.

Gründe dafür? Ist es das beste Verfahren, sowohl das Referenz- als auch das Id-Feld zu behalten?

+0

andere keine Auswirkungen auf Migrationen haben sollte, als wenn Sie die FK EF ausschließen wird für Sie erstellen in die Datenbank (Blog_ID). –

Antwort

1

Es ist nicht erforderlich, die ID anzugeben. Wenn Sie jedoch das faule Laden mithilfe des virtuellen Schlüsselworts aktivieren möchten und es Fälle gibt, in denen Sie nur die ID des Objekts benötigen, kann es sinnvoll sein, sie separat hinzuzufügen.

Ein Beispiel wäre:

public virtual Blog Blog { get; set; } 
public int BlogId { get; set; } 

Weitere Informationen zu faul/eager loading: https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx

Verwandte Themen