다음 LINQ to 엔티티 쿼리의 결과에 텔 레릭 RadGrid 및 일반 바닐라 ASP.NET GridView를 바인딩하는 데 문제가 있습니다. 두 경우 모두 그리드에 정확한 행 수가 포함되지만 첫 번째 행의 데이터 만 다른 모든 행에 복제됩니다. 이 코드의 반환 값을 격자의 DataSource 속성에 직접 지정합니다.엔티티에 LINQ를 사용하여 데이터 바인딩시 중복 행
public IEnumerable<DirectoryPersonEntry> FindPersons(string searchTerm)
{
DirectoryEntities dents = new DirectoryEntities();
return from dp in dents.DirectoryPersonEntrySet
where dp.LastName.StartsWith(searchTerm) || dp.Extension.StartsWith(searchTerm)
orderby dp.LastName, dp.Extension
select dp;
}
ADDED :
DataTable ret = new DataTable();
using (SqlConnection sqn = new SqlConnection(ConfigurationManager.ConnectionStrings["WaveAdo"].ConnectionString))
{
SqlDataAdapter adap = new SqlDataAdapter("select * from DirectoryPersonList where LastName like '" + searchTerm + "%' order by LastName ", sqn);
sqn.Open();
adap.Fill(ret);
}
return ret;
더 : LINQ하여 SQL Server에 전송
- 쿼리 작동이 작동 대체 일반 ADO.NET 코드입니다.
- 결과를 반환하기 전에 LINQ 쿼리 결과를 반복하면 동일한 중복이 발생합니다.
- 바인딩하기 전에 호출 메서드에서 LINQ 결과를 반복하면 동일한 중복이 발생합니다.
UPDATE : 마크 아래 자갈, 나는 EF 디자이너가 내 엔티티 클래스에 대한 엔티티 키에 아주 무식한 추측을 만들었다 발견에서 매우 논리적이고 피팅의 조언을 바탕으로, 첫 번째 필드 부서 목록에는 다른 모든 레코드에서 공유되는 약 7 개의 항목 만 있습니다.
이것은 실제로 중복의 원인입니다. 엔터티 키를 변경하거나 제거 할 수만 있다면 Etch-a-Sketch의 모든 비즈니스 로직을 갖춘이 EF 디자이너는 키를 선택하기가 힘들어 반복적으로 최선을 다하고 키를 변경하기 위해 외부에 잠근 채로 나를 비웃을 수 있습니다.
테이블에 중복 된 항목이 없는지 확인하십시오. 쿼리가 정확합니다. –
@Alexander, 예, 확신합니다. 동일한 뷰에 대한 일반 DataTable 쿼리는 그리드가 올바르게 바인딩되도록합니다. – ProfK
코드를 더 자세히 보여주십시오. 둘 다 작동하고 문제. –