2015-12-21 71 views
0

我目前有虛擬類表示將從數據庫中查詢的數據。第一個是具有一對一的外鍵與其它表主表:不同類型的列表中的嵌套列表

public class PayslipMain 
    { 
     public int payslip_date_ID; 
     public int employee_no_ID; 
     public string scale_description; 
     public string scale_point; 
     public double current_rate; 
     public string cost_centre; 
     public string message; 
     public string pension_message; 
     public int gross_earnings_ID; 
     public int deductions_ID; 
     public int details_ID; 
     public int cumulatives_ID; 

     public PayslipMain() 
     { 

     } 

    public PayslipMain(int payslipdateid, int employeenoid, string scaledescription, string scalepoint, double ratecurrent, string costcentre, string _message, string pensionmessage, int grossearnings_id, int deductions_id, int details_id, int cumulatives_id) 
    { 
     payslip_date_ID = payslipdateid; 
     employee_no_ID = employeenoid; 
     scale_description = scaledescription; 
     scale_description = scalepoint; 
     current_rate = ratecurrent; 
     cost_centre = costcentre; 
     gross_earnings_ID = grossearnings_id; 
     deductions_ID = deductions_id; 
     details_ID = details_id; 
     cumulatives_ID = cumulatives_id; 
     message = _message; 
     pension_message = pensionmessage; 

    } 

} 

這些類則用來創建一個動態的信息列表:

public List<PayslipMain> BuildPayslip() 
     { 
      List<PayslipMain> list = new List<PayslipMain>(); 

      list.Add(new PayslipMain(0, "Grade 8 (Professional S)", "43", 45954.00, "Default Cost Centre", "TAX REF: 065/L11408", "There is no historic message stored for this payslip.", 1, 1, 1, 1)); 
      list.Add(new PayslipMain(1, "Grade 8 (Professional S)", "43", 50000.00, "Default Cost Centre", "TAX REF: 065/L11408", "There is no historic message stored for this payslip.", 2, 2, 2, 2)); 

      return list; 
     } 

然而,在過去的四個值,我試圖將嵌套列表添加到這些值基於一對一關係的位置。例如。

public class Details 
    { 
     public int details_Id; 
     public string details_element; 
     public string details_value; 

     public Details() 
     { 

     } 

     public Details(int detailsid, string detailselement, string detailsvalue) 
     { 
      details_Id = detailsid; 
      details_element = detailselement; 
      details_value = detailsvalue; 
     } 
    } 
} 

那麼這類用於創建:

public List<Details> BuildList() 
     { 
      List<Details> list = new List<Details>(); 

      /* 28th September 2015 */ 
      list.Add(new Details(1, "Pay Group", "1")); 
      list.Add(new Details(1, "Personnel No.", "025946")); 
      list.Add(new Details(1, "National Insurance No.", "NS000000D")); 
      list.Add(new Details(1, "National Insurance Letter", "D")); 
      list.Add(new Details(1, "Tax Basis", "Cumulative")); 
      list.Add(new Details(1, "Tax Code", "1060L")); 

      /* 28th September 2015 */ 
      list.Add(new Details(2, "Pay Group", "8")); 
      list.Add(new Details(2, "Personnel No.", "442685")); 
      list.Add(new Details(2, "National Insurance No.", "NS000000D")); 
      list.Add(new Details(2, "National Insurance Letter", "J")); 
      list.Add(new Details(2, "Tax Basis", "Cumulative")); 
      list.Add(new Details(2, "Tax Code", "9204L")); 

      return list; 
     } 

的其他列表創建相同這一個,但與不同的值不同的密鑰。

那麼是否有可能將這些列表嵌套到外鍵是每個列表中的標識的主列表中?列表中

添加列表:

public List<PayslipMain> BuildPayslip() 
     { 
      List<PayslipMain> list = new List<PayslipMain>(); 

      list.Add(new PayslipMain(0, 12345, "Grade 8 (Professional S)", "43", 45954.00, "Default Cost Centre", "TAX REF: 065/L11408", "There is no historic message stored for this payslip.", 1, 1, 1, 1)); 
      list.Add(new PayslipMain(1, 12345, "Grade 8 (Professional S)", "43", 50000.00, "Default Cost Centre", "TAX REF: 065/L11408", "There is no historic message stored for this payslip.", 2, 2, 2, 2)); 

      return list; 
     } 

凡1或2是另一個列表的foriegn關鍵:

public List<Details> BuildList() 
     { 
      List<Details> list = new List<Details>(); 

      /* 28th September 2015 */ 
      list.Add(new Details(1, "Pay Group", "1")); 
      list.Add(new Details(1, "Personnel No.", "025946")); 
      list.Add(new Details(1, "National Insurance No.", "NS000000D")); 
      list.Add(new Details(1, "National Insurance Letter", "D")); 
      list.Add(new Details(1, "Tax Basis", "Cumulative")); 
      list.Add(new Details(1, "Tax Code", "1060L")); 

      /* 28th September 2015 */ 
      list.Add(new Details(2, "Pay Group", "8")); 
      list.Add(new Details(2, "Personnel No.", "442685")); 
      list.Add(new Details(2, "National Insurance No.", "NS000000D")); 
      list.Add(new Details(2, "National Insurance Letter", "J")); 
      list.Add(new Details(2, "Tax Basis", "Cumulative")); 
      list.Add(new Details(2, "Tax Code", "9204L")); 

      return list; 
     } 

我想添加的內容目錄到工資單主列表,外鍵的值

+0

這並不完全清楚你想要做什麼。你想將4個列表傳遞給PayslipMain的構造函數嗎? –

+0

嗨,我在'PayslipMain'中添加'Details'列表作爲嵌套列表 – user3565164

+0

在PayslipMain中添加諸如「公開列表

DetailsList {get; set;}」的屬性不起作用? –

回答

3

如果你想擁有每PayslipMain實例很多細節(等等),這樣做:

public class PayslipMain 
{ 
    // your properties... 
    public int cumulatives_ID; 
    public List<Details> PayslipMainDetails { get; private set; } 
} 

public PayslipMain(/* your params...*/) 
{ 
    // your assignings... 
    pension_message = pensionmessage; 
    PayslipMainDetails = new List<Details>(); 
} 

// wherever you create your list of details, do this 
payslipMainInstance.PayslipMainDetails.AddRange(BuildList()); 
+0

這很好,但我在嵌套依賴於外鍵的Details列表之後。 – user3565164

+0

@ user3565164你甚至認爲「嵌套」是什麼意思?顯示一個僞代碼示例。 –

+0

添加另一個列表,其中foriegn鍵與添加列表中的id相同 - 請參閱已更新的問題 – user3565164