我在数据库中有大约10个非常简单的表:
create table EmploymentStatus
(
Id int identity(1,1) Primary Key,
Name nvarchar(100) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
这些表用于DropDownLists注册视图,如下所示:
@Html.DropDownListFor(m => m.EmploymentStatus, Model.EmploymentStatusList, Resource.EmploymentStatus, new { @class = "form form-control" })
Run Code Online (Sandbox Code Playgroud)
DropDownListFor需要IEnumerable<SelectListItem> selectList一个集合.所以,我创建了一个方法:
public static List<SelectListItem> ToSelectItemList(IQueryable<EmploymentStatu> statuses)
{
return statuses.Select(m => new SelectListItem
{
Text = m.Name,
Value = m.Id.ToString()
}).ToList();
}
Run Code Online (Sandbox Code Playgroud)
问题是我必须为十个实体中的每一个创建一个方法.是否有一种编写通用方法的好方法,如下所示:
public static List<SelectListItem> ToSelectItemList(IQueryable<T> collection)
{
return collection.Select(m => new SelectListItem
{
Text = m.Name,
Value = m.Id.ToString()
}).ToList();
}
Run Code Online (Sandbox Code Playgroud)