본문 바로가기

LinqDataSource

[ASP.NET] LinqDataSource - 생성및 바인딩 SQL 데이터베이스에 직접적으로 연결하여 쿼리를 처리하는 SqlDataSource 컨트롤과는 달리 LinqDataSource 는 대상이 되는 DB 데이터를 객체화 하여 LINQ 를 통해 처리할 수 있도록 하는 컨트롤입니다. LinqDataSource 컨트롤을 사용하기 전에 우선 LINQ to SQL 을 통해 다루고자 하는 데이터의 Data Context 클래스를 생성하여야 합니다. 프로젝트에서 마우스 오른쪽 버튼을 눌러 Add -> New Item 을 선택합니다. Add New Item 화면에서 왼쪽 Data 카테고리를 선택하고 오른쪽 LINQ to SQL Classes 항목을 선택한 뒤 Add 버튼을 눌러줍니다. 이때 이름(Name)은 원하는대로 지정해도 됩니다. 위 단계를 거치고 나면 프로젝트에 .d.. 더보기
[ASP.NET] LinqDataSource - QueryExtender 를 통한 데이터 다중 필터링 LinqDataSource 컨트롤 생성시 설정마법사를 통해서도 어느정도의 데이터 필터링을 위한 기능을 제공하지만 QueryExtender 를 사용하면 좀더 다양한 방법으로 데이터 필터링을 수행할 수 있습니다. QueryExtender 는 다중검색이나 데이터 검색범위, 콤마(,)를 통한 OrderBy 다중필드 처리를 수행할 수 있을 뿐만 아니라 사용자 정의 표현식의 적용도 가능합니다. 아래 표는 현재 사용할 수 있는 필터링 표현식 항목입니다. SearchExpression 문자열이나 검색이나 비교를 수행합니다. 특히 SearchType 속성을 사용하면 StartsWith, EndsWith, Contains 를 이용한 검색도 가능합니다. RangeExpression 최소값과 최대값을 지정해 해당 범위의 값을.. 더보기
[ASP.NET] LinqDataSource - 데이터 동시성 (Data Concurrency) LinqDataSource 컨트롤도 SqlDataSouce 컨트롤과 마찬가지로 데이터를 업데이트하거나 삭제할때 데이터 동시성확인이 가능합니다. 이를 위해 필요한 속성이 StoreOriginalValuesInViewState 인데 이 값을 true 로 하면 변경되기전 본래의 데이터를 ViewState 에 저장하고 LINQ to SQL 이 변경/삭제된 데이터를 DB에 반영할때 동시성을 확인하게 됩니다. 다만 본래의 데이터를 ViewState 에 저장하게 되면 WebPage 자체의 용량이 증가하여 성능이 저하될 수 있으므로 주의가 필요합니다. 참고로 LinqDataSource 컨트롤은 select, insert, update, delete 의 전/후 이벤트를 발생시킬 수 있습니다. 만약 이들 동작중 예외가 발.. 더보기
[ASP.NET] LinqDataSource - Query Parameter 설정 LinqDataSource 컨트롤 사용시 과 같은 과정을 거칠 때 ▶ 필터링을 위한 Where 절이나 혹은 정렬을 위한 OrderBy, 집계를 위한 GroupBy 절을 추가할 수 있습니다. Where 에서 Where 버튼을 누르면 Where 절을 위한 설정을 진행할 수 있으며 해당 Parameter 의 조건데이터로 다른 소스컨트롤에서 사용되었던 구문과 같이 Querystring 이나 데이터필드, 세션값등을 설정할 수 있습니다. ▶ 에서 설정을 완료하고 'Add' 버튼을 누르고 나면 LinqDataSource 컨트롤의 구문은 다음과 같이 바뀌어 있을 것입니다. ▶ 물론 WhereParameters 내용은 얼마든지 추가 가능하며 LinqDataSource 컨트롤의 Where 속성도 그에 따라 변경되어질 것입.. 더보기