当我插入我的可序列化类Answer的单个实例时,插入工作正常。当我尝试插入答案数组时,会得到一个异常。当然,我不需要将我的答案数组转换为BsonDocuments数组,是吗?(对于单个插入,我不需要这样做!)
/********* DOES NOT WORK - THROWS EXCEPTION *****************/
public bool addAnswers(AnswerDataModel[] answers)
{
bool returnval = true;
try
{
this.answerCollection.Insert(answers, WriteConcern.Acknowledged);
}
catch (Exception ex)
{
LoggerModel.Log(String.Empty, DateTime.UtcNow, (int)LogSeverity.Severity.Critical, ex.Message + Environment.NewLine + ex.StackTrace);
returnval = false;
}
return returnval;
}
/******** WORKS ********/
public bool addAnswer(AnswerDataModel answer)
{
bool returnval = true;
try
{
this.answerCollection.Insert(answer, WriteConcern.Acknowledged);
}
catch (Exception ex)
{
LoggerModel.Log(String.Empty, DateTime.UtcNow, (int)LogSeverity.Severity.Critical, ex.Message + Environment.NewLine + ex.StackTrace);
returnval = false;
}
return returnval;
}
和错误:
Exception details:
Serializer ArraySerializer<AnswerDataModel> expected serialization options of type ArraySerializationOptions, not DocumentSerializationOptions.
at MongoDB.Bson.Serialization.Serializers.BsonBaseSerializer.EnsureSerializationOptions[TSerializationOptions](IBsonSerializationOptions options) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.BsonSerializationSerializersBsonBaseSerializer.cs:line 147
at MongoDB.Bson.Serialization.Serializers.EnumerableSerializerBase`1.Serialize(BsonWriter bsonWriter, Type nominalType, Object value, IBsonSerializationOptions options) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.BsonSerializationSerializersEnumerableSerializerBase.cs:line 369
at MongoDB.Driver.Internal.MongoInsertMessage.AddRequest(BsonBuffer buffer, InsertRequest request) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverCommunicationMessagesMongoInsertMessage.cs:line 149
at MongoDB.Driver.Internal.MongoInsertMessage.WriteBodyTo(BsonBuffer buffer) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverCommunicationMessagesMongoInsertMessage.cs:line 91
at MongoDB.Driver.Internal.MongoRequestMessage.WriteTo(BsonBuffer buffer) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverCommunicationMessagesMongoRequestMessage.cs:line 66
at MongoDB.Driver.Operations.InsertOpcodeOperation.Execute(MongoConnection connection) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverOperationsInsertOpcodeOperation.cs:line 83
at MongoDB.Driver.MongoCollection.InsertBatch(Type nominalType, IEnumerable documents, MongoInsertOptions options) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverMongoCollection.cs:line 1545
at MongoDB.Driver.MongoCollection.Insert(Type nominalType, Object document, MongoInsertOptions options) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverMongoCollection.cs:line 1396
at MongoDB.Driver.MongoCollection.Insert(Type nominalType, Object document, WriteConcern writeConcern) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverMongoCollection.cs:line 1410
at MongoDB.Driver.MongoCollection.Insert[TNominalType](TNominalType document, WriteConcern writeConcern) in d:jenkinsworkspacemongo-csharp-driver-1.x-buildMongoDB.DriverMongoCollection.cs:line 1368
Insert
用于向集合插入单个文档。使用InsertBatch
插入多个文档:
this.answerCollection.InsertBatch(answers, WriteConcern.Acknowledged);