LINQ가있는 컬렉션에서 대량 업데이트를 수행 할 수 있습니까? 현재 List<myObject>
이 있고 목록의 모든 행에 대해 동일한 TEST로 column1을 업데이트하려는 경우 foreach 루프를 설정하고 각 개별 객체에 대해 값을 설정 한 다음 저장합니다. 이 잘 작동하지만 만약 거기에 어떤 LINQ 방법 밖에 거기에 myOject.BulkUpdate(columnName, value)
같은 것을 할 수있는 궁금 해서요?LINQ to SQL을 통한 대량 업데이트
답변
LINQ To SQL을 사용하고있는 것처럼 들리며 이미 기본을 배웠습니다.
LINQ To SQL은 테이블을 클래스로 추상화하는 것으로, '은색 총알'이나 원 - 라이너를 제공하지 않습니다.
유일한 방법은 저장 프로 시저가 해당 열 이름과 새 값을 가져 와서 논리를 직접 구현하는 것입니다.
db.MassUpdateTableColumn("Customer", "Name", "TEST");
....
CREATE PROC MassUpdateTableColumn
@TableName varchar(100), @ColumnName varchar(100), @NewVal varchar(100)
AS
/*your dynamic SQL to update a table column with a new val. */
그렇지 않으면, 그것은 당신이 설명하는대로입니다 :
List<Customer> myCusts = db.Customers.ToList();
foreach(Customer c in myCusts)
{
c.Name = "TEST";
}
db.SubmitChanges();
예이 작업을 수행하는 방법을 알고 있습니다. 더 유선형의 LINQ 함수가 있는지 묻는 것입니다. – esastincy
LINQ를 SQL (또는 EF 그 문제에 대해), 그들 모두를 조작, 메모리에 객체를 데려에 관한 것입니다, 그런 다음 각 행에 대해 별도의 데이터베이스 요청으로 업데이트합니다.
클라이언트에서 전체 개체를 수화 할 필요가없는 경우 LINQ 대신 서버 측 작업 (stored procs, TSQL)을 사용하는 것이 훨씬 좋습니다. LINQ 공급자를 사용하여 데이터베이스에 대해 TSQL을 실행할 수 있습니다. 예를 들어, LINQ to SQL을 사용하면 context.ExecuteCommand ("테이블을 업데이트 할 필드의 값을 조건으로 설정")을 사용할 수 있습니다. SQL Injection에주의하십시오.
이 항목에 대한 Linq 표현식과 Terry Aney의 우수 라이브러리를 사용하면 완전히 사용자 요구 사항을 충족 할 수 있습니다.
Batch Updates and Deletes with LINQ to SQL
다음과 같이 될 것이다 준 예제의 관점에서 업데이트 :
using BTR.Core.Linq;
...
Context.myObjects.UpdateBatch
(
Context.myObjects.Where(x => x.columnName != value),
x => new myObject { columnName = value}
);
편집 (2017년 1월 20일를) : 그것은 가치가 아무것도이 사용할 수 있습니다 없습니다 NuGet 패키지 @https://www.nuget.org/packages/LinqPost/의 형태로 제공됩니다.
Install-Package LinqPost
RBAR을 피하기 위해 Upvoted, 첫 번째 대답은 정말 정확하지 않습니다. – Jasmine
- 1. sqlite는 linq-to-SQL을 지원합니까?
- 2. Linq to SQL을 사용하는 NOLOCK
- 3. 업데이트/조인하는 SQL을 Linq To SQL로 변환하는 방법?
- 4. LINQ to SQL 업데이트
- 5. LINQ to SQL 업데이트 문제
- 6. LINQ to SQL을 사용하여 기본 키 결정
- 7. linq-to-sql을 사용하는 엔터프라이즈 라이브러리는 무엇입니까?
- 8. LINQ to SQL을 사용하여 데이터베이스간에 복사
- 9. Linq to SQL을 사용하여 판매 보고서 생성
- 10. linq to sql을 사용하여 업데이트하는 방법은 무엇입니까?
- 11. Linq-to-SQL이 잘못된 SQL을 생성합니까?
- 12. DataContext와 LINQ to SQL을 사용하여 ComboBox 바인딩
- 13. 기본 Linq to SQL을 가진 열 정렬
- 14. Linq-to-SQL을 사용하는 ADO.NET 데이터 서비스
- 15. LINQ to SQL을 사용하여 이미지 채우기
- 16. linq-to-sql을 사용하여 카운트를 반환하십시오.
- 17. linq to sql + 업데이트 테이블
- 18. Linq to SQL - 업데이트 실패
- 19. Linq to SQL 데이터 업데이트
- 20. Linq-to-SQL에서 동시에 여러 테이블 업데이트
- 21. Linq-2-SQL을 이용한 삽입 및 업데이트
- 22. Linq to SQL ManyToMany 기존 레코드 업데이트
- 23. 일부 오류를 허용하는 LINQ to SQL이있는 대량 삽입
- 24. LINQPad : System.Data.Sqlite를 통한 LINQ to SQLite DataContext
- 25. LINQ to SQL 장점을 통한 EntityFramework?
- 26. LINQ to XML을 통한 원자 피드 분석
- 27. LINQ-to-SQL 및 대량 변경 제출이 매우 느립니다.
- 28. Linq-To-SQL을 사용하여 트랜잭션을 선택하고 업데이트하는 방법은 무엇입니까?
- 29. linq-to-sql을 사용하여 쿼리 된 테이블을 전환하는 방법
- 30. Linq-to-SQL을 사용하여 엔티티를 업데이트하는 방법은 무엇입니까?
당신은 LINQ - 투 - SQL에 대해 이야기하고 있는가? –
XML을 대량 데이터로 사용하여 대량 업데이트를 수행하기 위해 저장 프로 시저로 돌아 왔지만 LINQ에서 가능한지 알고 싶습니다. –