我正在C#系統中工作,我需要模擬多對多關係,我想用手建立模型(即我不想使用任何框架)。如何模擬代碼中的多對多關係?
我將通過系統的簡化例子走,然後解釋,然後問題: 我有一個包含書 S和作者 s分別書可以有很多作者一座圖書館,以及作者也是如此。
public class Book{
public string Title;
public List<Author> Authors;
}
public class Author{
public string Name;
public List<Book> Books;
}
現在,如果我想選擇書及其所有的作者;我會寫在書的階級是這樣一個功能:
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.
}
現在我應該可以做這樣的事情:
Book boo = new Book();
List<Book> books = boo.All();
Console.WriteLine(books[0].Authors[0].Name);
但我不能做的是:
Console.WriteLine(books[0].Authors[0].Books[0].Title);
因爲在此流程books[0].Authors[0].Books[0]
將爲空(或默認值)。 所以我不會做一些半動態的事情,並且始終記住從數據庫服務器和客戶端服務器的角度來看 的性能。
希望我明確地表達了我的觀點。謝謝你的時間。
爲什麼一本書* * *的實例能夠與*作者一起查詢*所有*書籍?聽起來你實際上是在尋找一種容納所有書籍的容器。 – HimBromBeere
除此之外,沒有您的代碼顯示如何填充屬於給定Author的'Books',我們不能說您爲什麼爲null。那麼在創建一個新的'Book' /'Author'時你實際上在做什麼? – HimBromBeere
@HimBromBeere,大多數情況下,查詢將加入**書**與**作者** s,我不知道這是否回答了您的問題。 – Symmetric