나는 2 개 테이블이 들어있는 데이터베이스가 있습니다 각 아파트는 두 개 이상의 세입자를 가질 수관련 SQL 테이블에서 EF를 통해 빠른 대량 삽입을 수행하는 방법은 무엇입니까?
Apartment: ID, Name, Address
Tenant: ID, Name, Phone, ApartmentID
을하지만, 각 세입자는 한 아파트에있을 수 있습니다.
Apartments : [
{
Name: 'Sherwood',
Address: '21 Woody Lane' ,
Tenants : [
{ Name: 'Robin', Phone: '111-1111' },
{ Name: 'Hood', Phone: '222-2222' }
]
},
...
]
내가 API는 2 관련 객체로 결과를 구문 분석해야합니다 아파트의 현재 목록을 반환하는 API 및 JSON 목록으로 그 아파트에 세입자의 목록도 있습니다
, 아파트 및 임차인을 찾아서 데이터베이스에 삽입하십시오. API에서 반환 된 많은 항목이 약 50 만 개 있습니다. 문제를 빨리 해결하기 위해 다음과 같은 아이디어를 얻었습니다. Fastest Way of Inserting in Entity Framework
그러나 내 솔루션에서 구현할 수없는 개념, 즉 SaveChanges()를 연기하는 개념이 하나 있습니다. 이것은 내가 현재 코드 (개념)를 가지고하는 방법입니다
Foreach apartment
Insert apartment into DB
SaveChanges()
Get ID of inserted apartment
Foreach tenant in apartment
Insert tenant into DB, into apartment ID
세입자 행을 삽입 할 때, 나는 그 세입자가 살고 있다는 아파트 ID를 필요로하는 상기 구조에 대한 이유 때문에 나는 필요 세입자를 삽입하기 전에 아파트를 삽입 (그리고 ID를 얻기 위해 변경 사항을 저장)해야합니다.
이로 인해 SaveChanges()가 여러 번 호출되어 성능이 저하되고 있습니다. 위의 솔루션을 어떻게 최적화 할 수 있습니까?