![](/img/trans.png)
[英]EF Core Linq Query to Select Rows That Match From a List of Possibilities
[英]How to turn a EF Core/LINQ query into a List<SelectList>?
我有以下類別模型:
public class CategoryDTO
{
public int Id { get; set; }
public string Name { get; set; }
public List<SelectList> WarehouseNames { get; set; }
}
倉庫型號:
public class Warehouse
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public int MaxCapacity { get; set; }
}
我想在我的數據庫中獲取所有 Warehouse.Id 和 Warehouse.Name 並將它們存儲在 CategoryDTO.WarehouseNames(值:Id,文本:名稱)中,以便我可以在下拉列表中顯示它們。 有人知道我該怎么做嗎?
修復Dto到List,也許你也需要添加一個WarehouseId???
public class CategoryDTO
{
public int Id { get; set; }
public string Name { get; set; }
public int WarehouseId { get; set; } //????
public List<SelectListItem> WarehouseNames { get; set; }
}
在你的行動應該是這樣的
var model= new CategoryDTO();
var wareHouseNames = context.Set<Warehouse>()
.Select ( i=> new SelectListItem {
Text = i.Name,
Value = i.Id
}).ToList();
model.WareHouseNames = wareHouseNames ;
return View(model)
並查看
@model CategoryDTO
<select class="form-control" asp-for="@WarehouseId" asp-items="@WareHouseNames">
<option value="0" >Select</option>
</select>
您可以將“公共列表”放入字典,並使用“倉庫”對象中的鍵作為 Id 和值作為名稱。
我認為您想完全從CategoryDTO
類型中刪除WarehouseNames
屬性,而不是填充一個CategoryDTO
對象,而是填充List<CategoryDTO>
或(甚至更好!) IEnumerable<CategoryDTO>
。
然后,您將能夠將這些 CategoryDTO 項目映射到下拉列表/HTML Select
實體。 但是,具體情況取決於您的問題中尚未包含的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.