【发布时间】:2022-01-08 12:33:19
【问题描述】:
我有这段代码可以从数据库中获取所有 Meal,但考虑到优化,我只想获取所需的实体,而不是全部返回。
public async Task<IEnumerable<Meal>> GetAllMeal()
{
return await _dbSet.Include(x => x.MealPrices).ToListAsync();
}
以上代码将从数据库中获取所有实体,包括我不需要的实体。 有没有办法在从 db 获取数据时映射我的 dto
【问题讨论】:
-
您的数据库表已经是类,这就是您访问它们的方式。如果你想做另一个级别的映射,你可以使用 AutoMapper,或者如果你想拉几列,你可以使用
EF Select例如。_dbSet.Include(x => x.MealPrices).Select(m => new{ object1 =m.Id, object2 = m.AnotherColumn}).ToListAsync();,您也可以映射到现有对象为_dbSet.Include(x => x.MealPrices).Select(m => new ExitingObject{ Id =m.Id, Column1 = m.AnotherColumn}).ToListAsync();这个stackoverflow.com/questions/19536064/… 也可以提供帮助
标签: c# asp.net .net asp.net-web-api