우리는 수백 개의 클래스/열거 형을 가진 커다란 애플리케이션을 가지고 있으며, 우리는 이들 중 일부를 저장하기 위해 MongoDB를 사용하고자합니다.MongoDB에 .NET 객체 삽입하기
상황에 따라 SQL 데이터베이스의 필드에 .NET 객체를 직렬화하고 요구에 따라 비 직렬화하는 현재 시스템이 있습니다. 우리가 원하는 것은 객체의 속성을 직접 쿼리 할 수있는 방법으로 객체를 Mongo에 집어 넣는 것입니다 (즉, 객체를 메모리에로드하거나 직렬화 해제 할 필요없이). 따라서 코드 기반을 대폭 변경하지 않고도 과거 데이터에서 일부 분석을 시작할 수 있습니다.
제 질문은 쉽게 가능합니다. 이 일을하기 위해 C# 드라이버에 내장 된 시리얼 라이저가 있습니까?
나는 또한 내가하려고하는 것이 본질적으로 잘못되면 더 좋은 방법을 제안하는 대답에 열려 있습니다.
업데이트 : 업데이트 : NHibernate를 사용하여로드 된 개체를 가져 와서 쿼리 가능한 개체로 Mongo에 삽입하는 것이 좋습니다. 궁극적으로, 나는 그것을 어떤 시점에서 다시 메모리에로드하기를 원할 것이다.
은 여기 문서화 : http://docs.mongodb.org/ecosystem/tutorial/serialize-documents- with-the-csharp-driver/ – WiredPrairie
코드에 엄청난 변화를주지 않고이 작업을 수행하려고합니다. 위의 링크는 각 엔티티 (및 그 자식)에 대한 ClassMap을 생성해야하는 것처럼 보입니다. 어셈블리에서 Hiberate Automap? – Martin
새로운 DB로 전환하면서 새로운 기능을 추가하려고하면 ... 상당량의 코드 이탈이 예상됩니다. 죄송합니다, NHibernate의 Automap에 익숙하지 않습니다. C# 드라이버는 Mapper 기능과 속성,'IBsonSerializable'을 통한 커스텀 직렬화 (또는 원시/네이티브'BsonDocument'를 사용합니다)를 가지고 있습니다. MongoDB의 성능을 향상 시키려면 올바른 인덱스를 추가하거나 표준 데이터 유형에 매핑하는 등의 작업을 수행해야합니다. – WiredPrairie