2011-02-14 61 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};