2011-01-13 4 views
6

SQL Server에서 작동하는 SqlClient에서 Entity Framework 4로 응용 프로그램을 마이그레이션하려고합니다. 나는 다른 한 테이블에서 여러 행을 복사 할 수있는 상황을, 그래서는 아래의 INSERT ... SELECT, 함께 할 :Entity Framework 4에서 SELECT를 사용하여 INSERT를 수행 할 수 있습니까?

INSERT INTO dbo.Table1 (Reg1, Reg2, Reg3, Reg4, Reg5, Reg6, Reg7, Reg8) 
SELECT Reg1, Reg2, Reg3, Reg4, Reg5, @Reg6, GETDATE(), @Reg8 
FROM dbo.Table2 
WHERE Reg1 = @Reg1 

내가 법인이 원격으로 비슷한 작업을 수행 할 수 Framework 또는 Table2에서 모든 행을 가져와 Table1에 행 단위로 삽입해야합니까? GETDATE()를 어떻게 처리 할 수 ​​있습니까?
Tks

+0

ORM이 아니지만 배치 삽입, 일괄 삽입 또는 대량 복사를 검색합니다. –

+0

Jani, tks. 나에게 일어나지 않았다. – Pascal

+0

실제로 배치 삽입에 관한 대부분의 게시물은 클라이언트에서 서버로 여러 INSERT를 일괄 적으로 보내는 것에 관한 것입니다. 내가 원하는 것은 상당히 다릅니다. – Pascal

답변

2

저장 프로 시저에 sql을 넣은 다음 응용 프로그램에서 해당 저장 프로 시저를 호출하십시오. 일반 SQL 클라이언트를 사용하여 proc을 실행하도록 호출 할 수는 있지만 사용자가 직접 실행할 수있는 이유는 없습니다. EF 모델을 사용하고 싶다면 EF에서 호출하십시오.

원하는 경우/필요하면 값을 반환 할 수 있습니다.

1

아니요, EF에서는 작동하지 않습니다. EF는 선택한 모든 데이터를 DB에서 응용 프로그램으로로드하여 개체로 구체화하고 이러한 개체를 하나씩 두 번째 테이블에 삽입합니다. EF는 unable to do batch operations입니다.

+0

에서 누구나 사용할 수있는 사람이 있습니까? EntitySQL? – Pascal

+0

ESQL도 마찬가지입니다. –

0

EF4의 새로운 CTP5 기능 릴리스를 사용할 수 있으면 DbContext.Database에서 SqlQuery & SqlCommand 메서드를 통해 원시 SQL 쿼리 및 명령을 실행할 수 있습니다.

0

아니요, EF4는 대량 작업을 지원하지 않습니다.

시나리오에서는 사용자 테이블의 dbo.Table1 테이블을 모방 한 데이터베이스를 만듭니다.

은 UDT와는 삽입을 수행하도록 허용하는 저장 프로 시저 만들기 :

INSERT INTO dbo.Table1 (Reg1, Reg2, Reg3, Reg4, Reg5, Reg6, Reg7, Reg8) 
SELECT Reg1, Reg2, Reg3, Reg4, Reg5, @Reg6, GETDATE(), @Reg8 
FROM @UdtPassedIn 

을 그리고 정기적으로 ADO.NET에서 해당 전화.

관련 문제