从数据库表中获取所有记录以填充下拉列表

时间:2017-11-22 20:37:58

标签: asp.net-mvc repository-pattern

我构建了一个使用存储库模式的简单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的引用。)

0 个答案:

没有答案