嗨专家 我想使用Lambda Expression并编写此代码:
Func<Regions, SelectAllRegion> Select = r => new {r.RegionID,r.RegionDescription};
clsr.SelectAll<SelectAllRegion>(Select);
但我不行。它引发了这个错误:
Cannot implicitly convert type 'AnonymousType#1' to 'SelectAllRegion'
我该如何编写此代码?
答案 0 :(得分:1)
我怀疑你想要:
Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion {
RegionID = r.RegionID,
RegionDescription = r.RegionDescription };
假设您 得到了合适的SelectAllRegion
课程。您发布的lambda表达式将Regions
转换为匿名类型 - 这始终是new { ... }
的结果。这只能(有用地)在类型推断的上下文中使用,而不是像你在这里一样的简单变量声明。
答案 1 :(得分:1)
您的第一行返回匿名类型。您想要返回SelectAllRegion
- 类似这样的内容:
Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion()
{RegionID = r.RegionID, RegionDescription = r.RegionDescription};