Модель:MongoDB бросает исключение '' System.IO.FileFormatException '' при десериализации свойство
public class QuestionModel
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string Name { get; set; }
public string Expression { get; set; }
[BsonIgnoreIfNull]
public List<PreRenderedQuestion> PreRenderedQuestionsList { get; set; }
}
public class PreRenderedQuestion
{
public string Id { get; set; }
public string Name { get; set; }
public string Expression { get; set; }
public string ExpressionWithValues { get; set; }
}
Вопрос Коллекция В БД:
{
"_id" : ObjectId("5539b948bb63bc0680f29025"),
"Name" : "addition",
"Expression " : "a+b",
"PreRenderedQuestionsList" : [
{
"Id" : "5539b948bb63bc0680f29325",
"Name" : "addition",
"Expression " : "a+b",
"ExpressionWithValues " : "5+2"
},
{
"Id" : "5539b948bb63bc0680f29326",
"Name" : "addition",
"Expression " : "a+b",
"ExpressionWithValues " : "6+9"
}
]
}
Получить Вопрос Метод:
function getQuestions(QuestionModel oModel)
{
_query = Query<QuestionModel>.Where(e => e.Is_Deleted == false);
_cursor = _collection.Find(_query);
oModel.QuestionList = new List<QuestionModel>();
foreach (QuestionModel ques in _cursor)
{
oModel.QuestionList.Add(ques);
}
}
Когда я пытаюсь получить вопрос, я получаю следующее исключение:
Исключение типа «System.IO.FileFormatException» произошло в MyProj.dll, но не был обработан в пользовательском коде
Дополнительная информация: ошибка при десериализации PreRenderedQuestionsList свойства класса Data.QuestionModel: Element «Id» не совпадает с любым полем или свойство класса
Я могу добавить и обновить коллекцию вопросов, но не в состоянии получить данные. Что мне не хватает?
Попробуйте добавить '[BsonElement (" Id ")]' к нему. – CodesInChaos
Ваш Ид - это строка, в то время как вы говорите, что это 'BsonType.ObjectId'. Вероятно, вы должны использовать 'ObjectId' ... – i3arnon
На самом деле, этого не должно быть, по крайней мере, не с драйвером 2.0 - какую версию драйвера вы используете? – mnemosyn