Linq查询TblBrands表BrandName列转List失败求助
问题分析与解决方案
你的代码核心问题是返回类型与查询结果类型不匹配:
- 方法声明返回
IEnumerable<TblBrand>,但Select里创建了只包含BrandName的匿名类型,匿名类型无法隐式转换为TblBrand,导致无法正确返回列表。
解决方法分两种场景:
场景1:只需要BrandName字符串列表
修改方法返回类型为IEnumerable<string>,直接提取BrandName字段:
public override IEnumerable<string> BrandList() { return Context.TblBrand.Select(r => r.BrandName).ToList(); }
场景2:必须返回IEnumerable<TblBrand>
不要使用匿名类型,要么返回完整的实体对象,要么实例化TblBrand并赋值所需属性:
// 返回完整实体 public override IEnumerable<TblBrand> BrandList() { return Context.TblBrand.ToList(); } // 仅填充BrandName属性(注意:若实体有必填字段需补充赋值) public override IEnumerable<TblBrand> BrandList() { return Context.TblBrand.Select(r => new TblBrand { BrandName = r.BrandName }).ToList(); }
内容的提问来源于stack exchange,提问作者Farid Alishov
相关产品推荐
相关产品推荐

