0
一個ASP.NET MVC(4)應用程序中使用RavenDB,什麼是上載一組相關實體並將它們傳遞給一個觀點正確的模式?什麼是「加盟」,在RavenDB兩個Entity設置正確的模式?
以堆棧溢出爲典型的例子,假設下面的實體:
class User
{
public int Id { get; set; }
public string UserName { get; set; }
}
class Comment
{
public int Id { get; set; }
public string Body { get; set; }
public string Author{ get; set; }
}
class Question
{
public int Id { get; set; }
// ...
public List<Comment> Comments { get; set; }
public Question()
{
Comments = new List<Comment>();
}
}
我們想要做的是旁邊顯示的問題下評論的用戶的信息是什麼,這些評論被存儲爲部分問題的文件,所以我們Include
的Comment.Author
我們的查詢可能是這樣的:
var question = RavenSession.Include<Question>(x => x.Author)
.Include<Comment>(x => x.Author)
.Load<Question>(id);
現在我們有一切的評論的問題對象,烏鴉客戶端已緩存的所有我們需要的用戶配置文件,什麼是相關評論的對象配對的用戶對象的正確/最佳/最RavenDB批准的方式是什麼?
一個想法是,我可以轉換User
和Comment
成CommentViewModel
和發送到客戶端,但似乎相當手冊。
另一個選項可能是將另一個屬性添加到Comment
作者,即[JsonIgnore]
'd和在吸氣劑中,從Raven會話中延遲加載用戶。這感覺很髒,因爲評論模型對象需要持有對烏鴉會議的參考。
感謝Ayende,你會倡導的觀點做第二負載,或者你會做他們都在控制,在一個循環,並將其傳遞出的視圖列表或字典或使用CommentViewModel是有強烈鍵入作者屬性? –