私はと呼ばれるモデルを持っていますRoles
:
public string CodeRole { get; set; }
public string Organisation { get; set; }
public string LabelRole { get; set; }
CodeRole
およびLabelRole
一意の値が含まれていますが、Organisation
列には約 12 のカテゴリが含まれています。ユーザーが でフィルタリングできるドロップダウンを生成したいと考えていますOrganisation
。
その結果、エンティティ フレームワークを使用して、何らかの形式のリスト/配列/コレクションを返すクエリを作成したいと考えてList<SelectListItem>
います。text
value
Organisation
クエリは次のようになると思います。
_context.Roles.GroupBy(r=> r.Organisation)
これはオブジェクトを返しますが、のIGrouping<string,Roles>
使用方法がわかりませんIGrouping
。
これにより、ビューのドロップダウン リストにList<SelectListItem>
viaを渡すことができます。ViewBag
編集: Alexander Manekovskiyの応答に基づく最終的な解決策
List<Roles> orgs = (List<DimRoles>)_context.Roles.GroupBy(f => f.Organisation).Select(r => r.FirstOrDefault()).ToList();
List<SelectListItem> items = new List<SelectListItem>();
foreach (DimRoles r in orgs)
items.Add(new SelectListItem { Text = r.Organisation, Value = r.Organisation });