我有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&lt; AnonymousType#3&gt;'到'System.Collections.Generic.List&lt; ViewCustomersPage.CustomerWithCountry&gt;'
答案 0 :(得分:4)
由于您选择的是Anonymous type,并且您尝试将ToList
的结果分配给List<CustomerWithCountry>
,因此该错误应该没有别名。您需要将结果投影到班级CustomerWithCountry
。
所以在你的查询中它应该是:
select (c=> new CustomerWithCountry() {.....
但请记住,如果您的类来自Entity框架或LINQ to SQL,那么您无法投影到该类型。
答案 1 :(得分: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();