MongoDB C# Картирование класса драйвера: MAP MongoDB вложенные поля в плоский классC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 MongoDB C# Картирование класса драйвера: MAP MongoDB вложенные поля в плоский класс

Сообщение Anonymous »

Я пытаюсь сделать очень простую вещь, я хочу составить на карту документ MongoDB с полями в классе как так: документ: < /p>

Код: Выделить всё

{
code: "123",
data: {
other_code: "456",
}
}
< /code>
class: < /p>
public class MyClass
{
[BsonElement("code")]
public string Code { get; set; }

[BsonElement("data.other_code")] // 
А потом я хочу иметь возможность использовать его в печатном запросе, как это: < /p>
var filter = Builders.Filter.Where(x => x.OtherCode == "456")
< /code>
Сгенерированный фильтр использует мою строку с точечной нотацией: < /p>
"data.other_code" : "456"
< /code>
Но когда я выполняю запрос с помощью: < /p>
List results = collection.Find(filter).ToList();
Участник другой код не заполнен и остается нулевым.
Я знаю, что могу сделать что -то вроде этого:
public class MyClass
{
[BsonElement("code")]
public string Code { get; set; }

[BsonElement("data")]
public Data Data { get; set; }

[BsonIgnore]
public string OtherCode => Data?.OtherCode

}

public class Data
{
[BsonElement("other_code")]
public string OtherCode{ get; set; }
}
< /code>
Но я хотел бы не создавать класс каждый раз, когда мне нужно сопоставить вложенное поле. метод Deserialize никогда не называется.
Есть мысли о том, как я могу это сделать?
Спасибо за вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/794 ... flat-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»