2009-04-16 5 views
0

편집 가능한 그리드를 광범위하게 사용하는 작은 창 양식 프로젝트부터 시작합니다. Linq를 Entity에 사용하고 싶지만 Linq 쿼리에 그리드를 바인딩하는 것은 쉬운 일이 아니지만 읽기 전용입니다. 데이터베이스를 자동으로 업데이트하는 편집 가능한 표를 가질 수있는 좋은 방법을 찾지 못했습니다. (나는 데이터를 표시/업데이트하고 뒤쪽으로 번역하기 위해 데이터를 복사하는 작업을 해킹했습니다 ... 추한!)Linq to Entities Vs. 테이블 어댑터 (.Net Windows Forms)

이제 Linq를 잊어 버리고 이전 테이블 어댑터를 사용하기로 결정했습니다./2.0에서 데이터 세트 방법.

엔티티 대신 Linq를 사용해야하는 이유가 있습니까? 방금 ​​내가 놓친 편집 가능한 그리드를 수행하는 방법이 있습니까?

답변

1

해결책을 찾았습니다. 람다 식을 사용하여 엔티티를 필터링 한 다음 엔티티에 직접 바인딩하십시오. 훌륭하게 작동합니다.

2

쿼리에 의해 반환 된 엔터티 컬렉션을 컨트롤에 바인딩하면 바인딩 된 엔터티를 편집 할 수 있습니다. 컬렉션과 컨트롤 사이에 BindingSource을 삽입해야 할지도 모르지만 이는 다릅니다. 개체 컨텍스트에서 SaveChanges()을 호출하면 변경 내용이 데이터베이스에 유지됩니다. 따라서 Entity Framework와의 데이터 바인딩이 올바르게 작동합니다.

+0

왜 내가 읽기 전용 그리드를 얻는 지 시험해 봅니다. 아마도 내가 사용하고있는 Infragistics 그리드 컨트롤일까요? – Jeff

+1

해당 컨트롤에 문제가 있는지 알 수 없습니다. DataGridView로 시도해보십시오. 이것은 모든 트릭 없이도 작동합니다. –

+0

감사합니다. 엔티티 자체가 아닌 쿼리 결과에 바인딩된다는 것을 알게되었습니다. 따라서 읽기 전용. 나는 linq에게 또 다른 기회를 줄 것이다. – Jeff