2012-10-30 55 views
1

考慮到這一點的ViewModel填充視圖模型與多個對象

public class DocumentReferenceViewModel 
{ 
    public int IdDocumentReference { get; set; } 
    public string DocumentTitle { get; set; } 
    public string PageNbr { get; set; } 
    public string Comment { get; set; } 
} 
  • 的DOCUMENTTITLE是文獻的屬性對象
  • IdDocumentReference的PageNumber是 DocumentReference的對象的屬性

文件DocumentReference的與一個propertie鏈接IdDocument

  • 我有一個寶庫,它可以返回文件對象
  • 我有一個寶庫,它可以返回DocumentReference的對象

public class DocumentReference 
{ 
    public int IdDocumentReference; 
    public string PageNbr { get; set; } 
    public string Comment { get; set; } 
} 


public class Document 
{ 
    public int IdDocument; 
    public string DocumentTitle { get; set; } 
} 

如何從這兩個對象(表)中綁定ViewModel,而無需在DocumentReference上循環,並且每個查詢數據庫以檢索de DocumentTitle?

PS:我沒有使用EF,我有倉庫調用手寫存儲過程

回答

0

您可以在您的視圖模型使用構造函數:

public class DocumentReferenceViewModel 
{ 
    public int IdDocumentReference { get; set; } 
    public string DocumentTitle { get; set; } 
    public string PageNbr { get; set; } 
    public string Comment { get; set; } 

    public DocumentReferenceViewModel(){} 

    public DocumentReferenceViewModel(Document doc, DocumentReference docRef){ 

     this.DocumentTitle = doc.DocumentTitle; 
     this.IdDocumentReference = docRef.IdDocumentReference; 
     this.PageNbr = docRef.PageNbr ; 
    } 
} 

你也可以添加構造方法Comment屬性。

public DocumentReferenceViewModel(Document doc, DocumentReference docRef, string comment){ 

     this.DocumentTitle = doc.DocumentTitle; 
     this.IdDocumentReference = docRef.IdDocumentReference; 
     this.PageNbr = docRef.PageNbr ; 
     this.Comment = comment; 
    } 

的從資源庫中DocumentDocumentReference獲得與新構造一個創建一個實例。

+0

謝謝,我將不得不遍歷引用,併爲每個引用查詢文檔標題的數據庫。但我想避免這種情況。我認爲我可以創建一個存儲過程來獲取每個DocumentReference的所有信息,但是我沒有一個優雅的方式來實現這個 – Massanu

+0

@Massanu您可以提出另一個問題,這完全是另一個話題 – Saeid

+0

如果您重新閱讀我的問題你會發現我已經精簡了我使用了存儲過程和存儲庫,並且我正在尋找一個解決方案,無需爲每個DocumentReference循環和查詢。 – Massanu