2011-11-13 3 views
0

레코드가 존재하는 경우 linq의 기존 레코드를 업데이트해야합니다. elese 새 레코드를 추가하십시오. saveChanges()가 둘 다 작동합니까? 그렇다면 업데이트와 삽입을 구별하는 방법. 미리 감사드립니다. 일반적으로Linq 기존 레코드 업데이트

+0

왜 둘을 구별하고 싶습니까? – Christian

답변

0

Linq에이 가 수정을 위해하지 쿼리입니다 (이것은 결국 언어 통합 쿼리의 약자) - 이상적으로 당신이 어떤 부작용을 만들려고하지 않습니다. 업데이트 및 삽입은 업데이트를 위해 일반적으로 기존 레코드를 쿼리해야합니다. 업데이트 - 삽입을 위해 추가하기 만하면됩니다. 그리고 예 SaveChanges()은 기본 데이터 저장소에 대한 변경 사항과 추가 사항을 커밋한다는 점에서 두 가지 모두에 대해 작동합니다.

귀하의 질문은 매우 광범위합니다. 특정 코드없이 귀하가보다 자세한 답변을 드리기 위해 애 쓰고 있습니다.

+0

OP는 LINQ to Entities (또는 LINQ to SQL)와 비슷한 이름이지만 비슷한 이름을 가진 쿼리 프레임 워크는 ORM입니다. – sq33G

+0

Linq to Entities는 Linq의 일부인 'Queryable'에 정의 된 동일한 확장 메소드를 사용하므로 인수가 유지됩니다. 정확히 downvote는 무엇입니까? EF가 ORM이라는 주장은 없지만 질의하는 부분 인 Entity에 대한 Linq는 ** - ** 쿼리하는 데에만 사용됩니다. – BrokenGlass

+0

사람들이 LINQ to Entities를 사용하여 데이터를 업데이트해서는 안된다는 귀하의 불만은 근거가 없습니다. OP는 업데이트하거나 삽입 할 LINQ 문을 찾고 있지 않았습니다. LINQ to Entities 레코드를 업데이트하고 삽입하는 올바른 방법을 찾고있었습니다 ORM – sq33G

1

SaveChanges()은 마지막 호출 이후 데이터베이스에 대한 모든 변경 사항을 수행합니다. 여기에는 다음이 포함

  • 콜렉션에서 항목을 삭제 모음
  • 에 새 항목을 추가
  • 변경 등록 그래서

, 당신이 중 하나는 컬렉션에 레코드를 추가하거나를 얻을 수 있습니다 기존 속성을 수정합니다. 이 시점을 수행하는 일반적인 방법은 없습니다. 변경을 수행 한 후 SaveChanges()으로 전화하여 변경 사항을 저장하십시오.