2011-02-14 42 views
1

嗨選擇Func鍵 我想使用Lambda表達式和編寫代碼:在Lambda表達式專家

Func<Regions, SelectAllRegion> Select = r => new {r.RegionID,r.RegionDescription}; 
     clsr.SelectAll<SelectAllRegion>(Select); 

,但我不works.It提出這個錯誤:

Cannot implicitly convert type 'AnonymousType#1' to 'SelectAllRegion' 

我應該如何寫這個代碼?

回答

1

我懷疑你想:

Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion { 
             RegionID = r.RegionID, 
             RegionDescription = r.RegionDescription }; 

這是假設你已經合適SelectAllRegion類。您發佈的lambda表達式將一個Regions轉換爲匿名類型 - 這總是new { ... }的結果。這隻能(有用)在類型推斷的上下文中使用,而不是像你在這裏得到的簡單變量聲明。

1

您的第一行返回一個匿名類型。你想要返回一個SelectAllRegion - 如下所示:

Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion() 
    {RegionID = r.RegionID, RegionDescription = r.RegionDescription};