0

我有 2 个同名的属性:

List<CustomerWithCountry> customersList = CustomerEntity.LoadCustomersSubsetForCriteria(null, 0, 100, null)
.Select(c => new { c.CODE, c.NAME, c.COUNTRY.NAME }).ToList();

c.Name 和 c.Country.Name 具有相同的名称有问题。

所以我尝试给 c.Country.Name 一个别名:

.Select(c => new { c.CODE, c.NAME, CountryName = c.COUNTRY.NAME }).ToList();

给我以下错误:

错误 3 无法将类型“System.Collections.Generic.List<AnonymousType#3>”隐式转换为“System.Collections.Generic.List<ViewCustomersPage.CustomerWithCountry>”

4

2 回答 2

4

该错误也应该在没有别名的情况下存在,因为您选择的是Anonymous type,并且您正在尝试将结果分配给ToListto List<CustomerWithCountry>。您需要将结果投影到您的班级CustomerWithCountry

所以在您的查询中应该是:

select (c=> new CustomerWithCountry() {.....

但是请记住,如果您的类来自实体框架或 LINQ to SQL,那么您不能投影到该类型。

于 2013-04-24T10:05:50.877 回答
2

创建新CustomerWithCountry对象

List<CustomerWithCountry> customersList =
           CustomerEntity.LoadCustomersSubsetForCriteria(null, 0, 100, null)
              .Select(c => new CustomerWithCountry{ 
                        CODE= c.CODE, 
                        NAME= c.NAME, 
                        CountryName = c.COUNTRY.NAME })
              .ToList();
于 2013-04-24T10:07:13.190 回答