Linq to list,select 只有四列来自数据库?

Linq to list, select only four columns from DB?

我的 table 有超过 15 列,我只想检索这些列中的 four 以存储在内存中。然而尝试下面的方法,给出了错误 cannot explicitly convert List to IEnumerable。这也是正确的做法吗?感觉我缺少 where 子句或其他东西? CompanyID 是索引。

IEnumerable<Company> company = _db.Company.Select(a => new
{
    CompanyId = Convert.ToString(a.CompanyId),
    CompanyType = a.CompanyType,
    CompanyName = a.CompanyName,
    Email = a.Email
}).ToList();

您使用 Select 语句创建了一个 Anonymous Type,但您无法将 List<definedAnonymousType> 转换为 IEnumerable<Company>

使用 var 代替 IEnumerable<Company>

var company = _db.Company.Select(a => new
{
    CompanyId = Convert.ToString(a.CompanyId),
    CompanyType = a.CompanyType,
    CompanyName = a.CompanyName,
    Email = a.Email
}).ToList();

那么您的 company 类型将是 List<definedAnonymousType>

您可以使用您想要的确切属性创建 CompanyLite dto 并将数据转换为该属性

var companyLite = _db.Company.Select(a => new CompanyLite 
{
   CompanyId = Convert.ToString(a.CompanyId),
   CompanyType = a.CompanyType,
   CompanyName = a.CompanyName,
   Email = a.Email
}).ToList();