람다 쿼리에서 'Order'의 고유 목록을 가져올 수 없습니다. 키워드 Distinct()
을 사용하고 있어도 반복되는 선택 목록 항목을 계속 반환합니다.Lambda Distinct not working
public ActionResult Index()
{
var query = _dbContext.Orders
.ToList()
.Select(x => new SelectListItem
{
Text = x.OrderID.ToString(),
Value = x.ShipCity
})
.OrderBy(y => y.Value)
.Distinct();
ViewBag.DropDownValues = new SelectList(query, "Text", "Value");
return View();
}
제안 사항을 알려주십시오.
UPDATE
죄송 사람 나는 진정으로 내 코드에서 Distinct()
을 놓쳤다. 나는 지금 그것을 내 코드에 추가했다.
기본적으로 값이 같지만 ID가 다른 모든 별개의 행을 가져 오려고합니다. 이 SQL 쿼리와 동일
......SELECT distinct [ShipCity] FROM [northwind].[dbo].[Orders] ORDER by ShipCity
귀하의 코드가 제로 *를 *했다가 '고유()를 호출'. –
엔티티 프레임 워크를 사용할 때 몇 가지 일반적인 조언 (나는 _dbContext가 EF 컨텍스트라고 가정 함) : ToList() 호출은 마지막으로 수행해야합니다. Single(), First(), Last(), Any(), Count() 등등과 동일합니다 ... 요점은 ... EF는 데이터베이스에 왕복 여행을 할 수 없을 정도로 충분히 "똑똑"합니다. . 그래서 ... 목록을 열거하기 위해 호출하기 전에 Where(), Select(), OrderBy() 등을 수행하면 훨씬 효율적입니다. Entity Framework에 대해 좀 더 읽어 보시기 바랍니다. – Igor
고유 전화 코드를 게시하십시오. 우리는 당신이 시도했거나 시도하려는 것을 이해해야합니다. –