Ich bin ein wenig verwirrt durch widersprüchliche Beispiele von Eins-zu-Viele-Modellbeziehungen unter Verwendung von EF, die ich online sehe.Erläuterung der Eins-zu-Viele-Navigationseigenschaften in Entity Framework
Ein Video sah ich Setup eine Beziehung zwischen Tabellen wie folgt:
public class CustomerType
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public int CustomerTypeId { get; set; }
public CustomerType CustomerType { get; set; }
}
So ein Customer
kann nur eine CustomerType
haben, sondern ein CustomerType
kann von vielen Customers
verwendet werden. Dieser Code funktioniert gut, ich kann eine Customer
's CustomerType
mit LINQ mit Include
holen.
nun an einer anderen Ressource Ich suche die gleiche Art von Beziehung zeigt:
fast das gleiche Das siehtpublic partial class Standard
{
public int StandardId { get; set; }
public string StandardName { get; set; }
public virtual ICollection<Teacher> Teachers { get; set; }
}
public partial class Teacher
{
public int TeacherId { get; set; }
public string TeacherName { get; set; }
public Nullable<int> StandardId { get; set; }
public virtual Standard Standard { get; set; }
}
, außer:
In diesem Beispiel ist die
Standard
Klasse (entspricht zu meinerCustomerType
) hat eine Navigationseigenschaft zurück zu einer Sammlung vonTeachers
, die mein erstes Beispiel nicht hat. Ist das einfach praktisch, wenn ich eine Liste aller Lehrer für einen bestimmten Standard erhalten möchte oder ist es notwendig, die Beziehung richtig einzurichten?Die Eigenschaften im zweiten Beispiel sind markiert
virtual
und die ersten sind nicht - es scheint, dass Best Practice ist, um Nav-Eigenschaften virtuell zu machen, aber gibt es einen Grund, warum Sie das nicht tun möchten?
Wenn es darauf ankommt, bin ich mit MVC5 und EF6 und ich möchte nur wissen, ob ein Beispiel richtig ist, und man ist falsch, oder nur zwei Arten von an der gleichen Stelle zu bekommen.
Danke!