2010-02-14 4 views
4

LINQ는 select 문과 새로운 개체/레코드를 만드는 것이 가장 좋다고 생각합니다. 업데이트 및 삭제를 위해 나는 그것이 정말로 쉽고 편리하다고 생각하지 않습니다. LINQ의 사용에 대해 의견이있는 사람은 누구입니까?LINQ는 주로 Select 문에 사용됩니까?

+0

"Language Integrated Query"의 약자로,이 이름은 주로이 용도로 사용되었다는 것을 의미합니다. –

+0

그러나 쿼리가 단독으로 선택되지는 않았습니까? 업데이트, 삭제, 삽입은 무엇이 쿼리입니까? – marko

+2

"쿼리"의 정의를 찾으십시오. 묻는 것은 정보 나 지식을 얻기 위해 질문하는 것을 의미합니다. 삽입, 업데이트 및 삭제는 기술적으로 쿼리가 아니며 데이터 수정 (DML)입니다. – jrista

답변

3

기술적으로 말하자면 LINQ는 "Language INtegrated Query"의 약자로, 정의에 따라 선택, 필터링, 프로젝션 등을 가능하게하는 언어 확장을 나타냅니다. 업데이트/삭제/삽입/등과 반드시 ​​관련이있는 것은 아닙니다.

그런데 LINQ는 LINQ to SQL, LINQ to XML 등 다양한 기술을보다 느슨하게 사용하여 업데이트/삭제/삽입/수행을위한 자체 메커니즘이 있거나 없을 수 있습니다. 예를 들어, LINQ to SQL을 사용하면 데이터 컨텍스트에서 업데이트를 추적하고 삭제, 삽입 등을 수행 할 수 있습니다. 그러나 이것은 단어의 일반적인 의미에서 "LINQ"와는 아무런 관련이 없습니다. 그러나 CRUD 작업을 수행 할 수있는 엔티티 집합을 생성하는 것이 매우 쉽습니다.

그러나 LINQ to SQL을 사용하여 레코드를 선택한 다음 곧바로 ADO.NET을 사용하여 변경 작업을 수행하는 경우에도 매우 어려울 것입니다. 당신은 곡식에 맞서서 거의 이익을 얻지 못할 것입니다. 복잡한 TSQL을 사용하여 변경 작업을 수행해야하는 경우 LINQ to SQL/Entities를 사용하면 저장 프로 시저를 실제로 호출 할 수 있습니다.

2

LINQ를 주로 사용하는 것은 효율적이고 읽기 쉬운 버그없는 반복 코드를 생성하는 데 필요한 선언적 기술입니다. 내 삭제 작업이 실제로 반복되는 컬렉션을 수정하지 않는 한,이 코드로 데이터를 테스트, 집계 또는 업데이트하거나 삭제하는 것은 중요하지 않습니다. 나는 LINQ가 모든 시나리오에서 똑같이 유용하다는 것을 발견한다.

그러나 저는 LINQ to SQL을 전혀 사용하지 않습니다. 나는 결코 그것을 위해 좋은 용도를 찾지 못했습니다.