0

아래 코드를 사용하여 데이터베이스에서 고유 한 행을 선택하려고합니다. 이 쿼리를 실행하면 예상 한 결과가 반환되지 않습니다. 드롭 다운 컨트롤에 도시 이름이 필요합니다.데이터베이스에서 고유 한 행을 선택하는 방법

using (var context = new CountryEntities()) 
     { 
      var city = (from u in context.Cities 
         where u.StateId == StateID 
         select new 
         { 
          cityId = u.CityId, 
          cityName = u.CityName 

         }).Distinct(); 


      cboCity.DataSource = city.ToList(); 
      cboCity.DataValueField = "CityId"; 
      cboCity.DataTextField = "CityName"; 
      cboCity.DataBind(); 
      cboCity.Items.Insert(0, new ListItem("--Select--", "0")); 
     } 

내 데이터베이스 테이블은 어떻게해야합니까

enter image description here

입니다. 도와주세요. 미리 감사드립니다.

+3

이름이 같지만 ID가 다른 여러 도시가 있습니까? –

+0

여러 개의 도시와 여러 개의 stateId가 있습니다. – Jaan

+0

이름이 같은 두 도시가있는 도시는 어느 도시입니까? 그것이 진짜 질문입니다. –

답변

2

당신은 중복 도시 이름이 없다가, 당신이 이런 식으로 작업을 수행 할 수 있는지 확인해야합니다 경우 그러나, 이것은 중복 된 이름을 가진 일부 도시를 버리고의 결과를 가지고

var city = context.Cities 
    .Where(u => u.StateId == StateID) 
    .GroupBy(u => u.CityName) 
    .Select(g => new { 
     cityId = g.First().CityId, 
     cityName = g.Key 
    }); 

는, 단 하나의 cityId이기 때문에 갈거야.

이 제한을 극복하려면 지역 명 또는 우편 번호와 같이 도시 모호성 제거를위한 또 다른 열을 입력해야합니다. 그런 다음이 혼란 표시를 자신의 이름만으로는 고유하게 식별 할 수없는 도시 이름에 추가하도록 코드를 변경해야합니다.