Mongo C # - Отображение IReadOnlyCollection в MongoDB - PullRequest
0 голосов
/ 11 января 2019

Мне нужно отобразить коллекцию IReadOnlyCollection в MongoDB, но когда я использую фильтры в Mongo, у меня возникают проблемы.

Я пытаюсь использовать поле списка и сопоставить свойство IReadOnlyCollection с этим полем и отобразить поле в Mongo, но возникают проблемы

public class Company : AggregateRoot
    {
        private List<CompanyDocument> _documents = new List<CompanyDocument>();

        public IReadOnlyCollection<CompanyDocument> Documents => _documents.AsReadOnly();

        public void AddDocument(Document document)
        {
            // ...

            _documents.Add(new CompanyDocument(document));
        }
BsonClassMap.RegisterClassMap<Company>(map =>
            {
                map.AutoMap();

                map.MapField("_adresses").SetElementName("Adresses");
                map.MapField("_documents").SetElementName("Documents");
                map.MapField("_emails").SetElementName("Emails");
                map.MapField("_phones").SetElementName("Phones");
            });
var filter = Builders<Company>.Filter.ElemMatch(
                c=>c.Documents,
                Builders<CompanyDocument>.Filter.Eq(companyDocument => 
                    companyDocument.Document.Value, "06923123000180"));

            var results = _companies
                .Find(filter)
                .Project(c => new CompanyItemModel
                {
//...
});


Я считаю, что вывод - это регистр, которому соответствует элемент в списке документов, но возникает ошибка:

InvalidOperationException: Unable to determine the serialization information for c => c.Documents.
MongoDB.Driver.ExpressionFieldDefinition<TDocument>.Render(IBsonSerializer<TDocument> documentSerializer, IBsonSerializerRegistry serializerRegistry)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...