Допустим, у меня есть коллекция вроде:
{
id: "1"
name: "collection 1"
properties: "Some properties."
}
С представлением класса как
[BsonIgnoreExtraElements]
public class InfoPOCO {
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("name")]
public string Name { get; set; }
[BsonElement("properties")]
public string Properties { get; set; }
}
Теперь, если я собираюсь создать проекцию типа
Builders<InfoPOCO>.Projection.Include(_ => new{_.Name});
И назовите его другими параметрами (Это работает нормально без проекции)
return GetDataBase().GetCollection<InfoPOCO>(collectionName).Find(Expr).
Project<InfoPOCO>(projectionDefinition).Skip(Offset).Limit(Limit).Sort(sort).ToList<InfoPOCO>()
Тогда я получаю следующую ошибку:
System.InvalidOperationException : Unable to determine the serialization information for
_ => new <>f__AnonymousType2`1
Result StackTrace:
at MongoDB.Driver.ExpressionFieldDefinition`1.Render(IBsonSerializer`1 documentSerializer, IBsonSerializerRegistry serializerRegistry)
at MongoDB.Driver.SingleFieldProjectionDefinition`1.Render(IBsonSerializer`1 sourceSerializer, IBsonSerializerRegistry serializerRegistry)
at MongoDB.Driver.KnownResultTypeProjectionDefinitionAdapter`2.Render(IBsonSerializer`1 sourceSerializer, IBsonSerializerRegistry serializerRegistry)
at MongoDB.Driver.MongoCollectionImpl`1.CreateFindOperation[TProjection](FilterDefinition`1 filter, FindOptions`2 options)
at MongoDB.Driver.MongoCollectionImpl`1.FindSync[TProjection](IClientSessionHandle session, FilterDefinition`1 filter, FindOptions`2 options, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl`1.<>c__DisplayClass35_0`1.<FindSync>b__0(IClientSessionHandle session)
at MongoDB.Driver.MongoCollectionImpl`1.UsingImplicitSession[TResult](Func`2 func, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionImpl`1.FindSync[TProjection](FilterDefinition`1 filter, FindOptions`2 options, CancellationToken cancellationToken)
at MongoDB.Driver.FindFluent`2.ToCursor(CancellationToken cancellationToken)
at MongoDB.Driver.IAsyncCursorSourceExtensions.ToList[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken)
Что может быть причиной этого, когдаЯ не использую проекцию, она получает всю коллекцию.Я не знаю, нужно ли мне сопоставить классы?(Думал, Авто Карта возьмет это).Я попытался сделать конструктор в классе тоже.Но все та же ошибка.Любая помощь будет высоко оценен.Спасибо !