>데이터 베이스 >MySQL 튜토리얼 >LINQ는 Select 문 없이 직접 SQL 업데이트를 수행할 수 있습니까?

LINQ는 Select 문 없이 직접 SQL 업데이트를 수행할 수 있습니까?

DDD
DDD원래의
2024-12-20 10:31:10832검색

Can LINQ Perform Direct SQL Updates Without Select Statements?

LINQ를 사용한 직접 업데이트: Select 문 우회

SQL 작업 시 조건문을 사용하여 select 문 없이 직접 업데이트를 생성할 수 있습니다. LINQ의 일반적인 패턴에는 엔터티 선택, 수정 및 변경 사항 제출이 포함됩니다.

그러나 LINQ를 사용하여 직접 업데이트를 실행하고 실행을 연기하려면 어떻게 해야 할까요? 클라이언트로 데이터를 전송하지 않고 SQL을 직접 실행하는 것이 가능한가요?

답은 '예'입니다. LINQ-to-SQL은 select 문 없이 업데이트 문을 생성할 수 있습니다. 이는 키 값이 있는 객체를 컨텍스트에 연결하고 해당 속성을 수정하여 달성할 수 있습니다.

예:

Foo foo = new Foo { FooId = fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name = "test";
context.SubmitChanges();

Dbml의 모든 속성에 대해 UpdateCheck="Never"를 설정하면 됩니다. 파일을 삭제하면 원본 엔터티를 먼저 선택하지 않고도 단일 업데이트 문이 생성됩니다.

한 가지 주의할 점은 속성을 null로 설정하려는 경우 LINQ가 변경 사항을 감지할 수 있도록 하려면 개체를 다른 값으로 초기화해야 합니다. 예를 들면 다음과 같습니다.

Foo foo = new Foo { FooId = fooId, Name = "###" };
...
foo.Name = null;

또한 Dbml 파일에서 속성을 UpdateCheck="Always"로 설정하여 업데이트 중에 타임스탬프를 확인할 수 있습니다. 이렇게 하면 업데이트 문에 타임스탬프 값을 기반으로 하는 조건이 포함됩니다.

위 내용은 LINQ는 Select 문 없이 직접 SQL 업데이트를 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.