2013-10-10 43 views
0

我使用Exp-Func創建了兩個選擇器我想在單個查詢中執行這兩個選擇器。代碼如下:選擇器中的表達式Func

Expression<Func<Scholar, ScholarCultureWatchListView>> selector = z => new ScholarCultureWatchListView 
{ 
    ScholarId = z.ID, 
    Name = z.FirstName + " " + z.LastName            
}; 

Expression<Func<Scholar, ScholarCultureWatchListView>> selector2 = z => new ScholarCultureWatchListView 
{ 
    Grade = z.CurrentGrade 
}; 
var result= from s in db.Scholars 
      select new ScholarCultureWatchListView 
       { 
      **?????What is write here (selector, selector2)** 
       } 



public class ScholarCultureWatchListView 
{ 
    public long ScholarId { get; set; } 
    public string Name { get; set; } 
    public Grade? Grade { get; set; } 
    public bool? HoldOverSkip { get; set; } 
    public Grade? GradeHoldOver { get; set; } 
    public bool? Iep { get; set; } 
    public int Tardies { get; set; } 
    public int Absences { get; set; } 
    public int YtdSuspensions { get; set; } 
    .... 
} 

請解決我的問題。 感謝

+0

你完全設定不同的屬性在每種情況下。你可以發佈ScholarCultureWatchListView的代碼 - 或者至少是它的公共屬性列表。 –

+0

我發佈了代碼。 –

回答

0

如果你想從一個單一的調用返回ScholarCultureWatchListView兩個單獨的實例,例如,你可以做這(和你不需要選擇全部):

var result = from s in db.Scholars 
      select new[] 
      { 
       new ScholarCultureWatchListView 
       { 
        ScholarId = s.ID, 
        Name = s.FirstName + " " + z.LastName 
       }, 
       new ScholarCultureWatchListView 
       { 
        Grade = z.CurrentGrade 
       }, 
      }; 
+0

我想返回單個實例。但我必須動態選擇字段。所以我想創建許多選擇器並執行它們以根據給定的條件在單個實例中獲得結果。 –

+0

我不認爲我明白你想達到什麼目的。許多「選擇器」意味着許多結果,那麼你究竟會使用所謂的選擇器呢? –