使用.NET MVC開發API並以JSON格式返回結果。起初,它似乎與我從數據庫返回的結果一起工作,因爲IEnumerable然後被轉換爲JSONResult類型以返回。Linq to SQL over the zealous serialization
這個序列化hierrachy爲我和子對象加載automaticaly根據設計師的關係,併成爲JSON hierrachy的一部分。
IEnumerable<Book> books= _contentRepository.GetBooks();
return Json(new {
success = true,
data = new {
books = books
}
}, JsonRequestBehavior.AllowGet);
這種能力也是問題,因爲有時會加載一些我不需要的子對象的整個負載。例如,假設我有一個擁有相關書籍的圖書實體,而這些相關圖書也有相關書籍,那麼這棵樹會很快變得很深。
這個裏克施特拉爾會談朝他的文章的結尾:http://www.west-wind.com/weblog/posts/147218.aspx
我還是想保持hierrachy,使JSON也hierrachical。例如book.author,book.publisher [0] .name,但我想要對查詢中加載的內容進行一些控制。
我在尋找去除設計器中的實體之間的所有鏈接,並指定查詢中的連接或查詢,並可能手動彌補由此產生的hierrachy?
這很好地確保只有期望的數據被返回(您是否使用Automapper),但不必要的數據首先被加載,並且可能會減慢速度)作爲主對象的子集合... – 2011-02-22 23:42:42