Ich arbeite in einem C# -System, wo ich eine Viele-zu-Viele-Beziehung modellieren muss, wo ich die Modelle von Hand erstellen möchte (d. H. Ich möchte keine Frameworks verwenden).Wie modelliert man viele zu viele Beziehungen im Code?
ich durch ein vereinfachtes Beispiel des Systems gehen, und dann erklären, dann Problem: Ich habe eine Bibliothek, die Buch s und Autor s enthält jedes Buch viele Autor s haben, und Das gleiche gilt für die Autor.
public class Book{
public string Title;
public List<Author> Authors;
}
public class Author{
public string Name;
public List<Book> Books;
}
Nun, wenn ich will Bücher mit all ihren Autoren zu SELECT; Ich würde eine Funktion in den Buch s Klasse so etwas schreiben:
public List<Book> All(){
List<Book> Books = new List<Book>();
Books = //Query that brings all books and its Authors and populate them into the Books list.
}
Nun soll ich in der Lage sein, so etwas zu tun:
Book boo = new Book();
List<Book> books = boo.All();
Console.WriteLine(books[0].Authors[0].Name);
Aber was ich nicht tun kann ist:
Console.WriteLine(books[0].Authors[0].Books[0].Title);
Da in diesem Fluss books[0].Authors[0].Books[0]
null sein wird (oder der Standardwert). Also ich werde nicht etwas Semi-Dynamic zu machen und immer noch die Leistung von der Datenbankserver und Client-Server-Perspektive im Auge behalten.
Ich hoffe, ich machte meinen Standpunkt klar genug. Vielen Dank für Ihre Zeit.
Warum sollte eine Instanz von * einem * Buch in der Lage sein, * alle * Bücher zusammen mit einem anderen Autor abzufragen? Klingt, dass du nach einer Art Container suchst, der all deine Bücher enthält. – HimBromBeere
Abgesehen davon, dass Ihr Code nicht zeigt, wie Sie die 'Bücher', die zu einem bestimmten' Autor' gehören, füllen, können wir Ihnen nicht sagen, warum er null ist. Was machst du eigentlich, wenn du ein neues Buch/Autor erstellst? – HimBromBeere
@HimBromBeere, Meistens würde die Abfrage die ** Buch ** s mit ** Autoren ** s verbinden, ich weiß nicht, ob dies Ihre Frage beantwortet hat. – Symmetric