我构建了一个使用存储库模式的简单ASP.NET MVC Web应用程序。
在这个应用程序中,我有一个下拉列表,用于选择一些项目(在这种情况下是车辆制造)。
为此我在我的Controller中使用Registry Editor
动作:
PopulateMakesDropDownList
方法 private async Task<List<SelectListItem>> PopulateMakesDropDownList()
{
var makes = await _vehicleRepository.AllMakesAsync();
return makes.Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.Name }).ToList();
}
在车辆存储库中定义:
AllMakesAsync()
我被告知我不应该使用像public async Task<IEnumerable<VehicleMake>> AllMakesAsync()
{
return await _context.VehicleMakes.ToListAsync();
}
这样的方法,因为如果我们在该表中有一百万条记录,那么它可能会造成麻烦。
我知道在我的情况下,我只有几辆车制造,所以这不是一个探测器。但尽管如此我想知道有更好的方法来实现这个吗?
(请注意我的存储库位于另一个项目中,该项目没有任何对MVC的引用。)