Datatable 모델 클래스 사용하지 않고 DB에 쓰기

안녕하세요.
이번에도 도움 받고자 왔습니다.
거두절미하고 바로 본론 가겠습니다.

MS-SQL에서 MongoDB로 Bulk Insert 기능을 만들고 있습니다.

그래서 SQL서버에서 데이터를 읽어오고 DataTable로 만들었습니다.


(데이터 테이블을 잘 만들었다는것을 보여주기 위해 올렸습니다.)

제가 하고 싶은 것은 모델클래스를 만들지 않고 바로 DataTable에 Bulk Insert가
가능한지 입니다.

제가 시도해본게 List, List, .AsEnumerable().ToList(),
Select(x=>x~~), SelectMany(x=>new{~~}), 제네릭, BsonDocument() 등등 여러가지 시도 해서 모델클래스 사용하지 않고 넣어보려고 했는데 다 실패했습니다.

설령 들어간다해도 Row에는 실데이터가 아닌 System.~~~ 이러한 데이터들이 들어가서 실패했습니다.

또 반대로 모델클래스를 만들어서 넣었을 땐 성공은 했고요.
종종 컬럼이 바뀌어서 관리하기가 힘들어서 혹시나 가능할까 해서 여쭤봅니다.

실험환경: .NET 8 WebAPI
DB: MS-SQL, MongoDB

항상 감사합니다ㅠㅠ
ps. 스택오버플로우에서 참고한것들도 시도 해봤는데 안되서 여기에 여쭤봅니다.

1 Like

검색에 의하면,

  1. MS-SQL 에서 Json 으로 데이터를 받고,
    Format query results as JSON with FOR JSON - SQL Server | Microsoft Learn

  2. Josn 을 Bson 으로 변환 후, Bson collection 을 mongoDb 로 Insert 한다.
    BSON Operations - C#/.NET v2.25 (mongodb.com)

로 하면 될 것 같습니다.

그런데 raw 데이터를 다루는 것은 추상화된 데이터 모델을 다루는 것 보다 에러 유발 요소가 대체로 많을 것 같습니다.

모델 클래스를 사용하지 않는 방법을 찾는 사정이 있겠지만, 재고해보시라고 말씀드리고 싶네요.

2 Likes

너무 감사합니다.
MS-SQL에서 Json으로 받을 생각은 전혀 못했는데 이런 방식도 있었군요.
(List<>로 받아서 사용하고 있었습니다.)

잘 참고해보겠습니다. 감사합니다.
즐거운 하루되세요!

1 Like