Добрый день, интересует меня вопрос о том, как можно средствами MongoDB C# Driver просматривать содержание вложенных документов в коллекциях.
Есть коллекция примерно следующего содержания:
{
"_id" : ObjectId("5387548bd77a951d4006decd"),
"AccountNr" : 123,
"FirstName" : "Martin",
"LastName" : "Marley",
"Address" : {
"Zip" : 40789
}
}
И, есть классы описывающие ее:
public class Address
{
[BsonElementAttribute("Zip")]
public int Zip { get; set; }
[BsonElementAttribute("City")]
public string City { get; set; }
[BsonElementAttribute("Street")]
public string Street { get; set; }
[BsonElementAttribute("HomeNr")]
public int HomeNr { get; set; }
}
public class Client
{
[BsonId]
public ObjectId _id { get; set; }
[BsonElementAttribute("AccountNr")]
public int AccountNr { get; set; }
[BsonElementAttribute("FirstName")]
public string FirstName { get; set; }
[BsonElementAttribute("LastName")]
public string LastName { get; set; }
[BsonElementAttribute("Address")]
public Address address { get; set; }
[BsonConstructor]
public Client()
{
address = new Address();
}
}
Есть метод осуществляющий вставку докуметов в коллекцию:
public void InsertCustomer(Client client )
{
MongoCollection<Client> document = myDatabase.GetCollection<Client>("Client");
BsonDocument Client = new BsonDocument
{
{"AccountNr",client.AccountNr},
{"FirstName",client.FirstName},
{"LastName",client.LastName},
{"Address", new BsonDocument{{"Zip",client.address.Zip}}}
};
document.Insert(Client);
}
Есть так же метод позволяющий просмотреть содержание коллекции:
public List<Client> ViewAllClientsList()
{
var collection = myDatabase.GetCollection<Client>("Client");
MongoCursor<Client> clientResults = collection.FindAllAs<Client>();
List<Client> allClients = clientResults.ToList<Client>();
MessageBox.Show(allClients.ToJson().ToString());
return allClients;
}
В MessageBox коллекция отображается целиком, как она есть:
А, вот в Datagridview, когда я делаю привязку к allClients, имею на выходе следующее содержание:
Как же добиться того, чтобы отобразить данные с вложенного документа?