簡體   English   中英

聚合Fluent API Project方法未添加ID

[英]Aggregation Fluent API Project method not adding Id

我正在嘗試使用聚合流利的Api從mongodb獲取一些數據。 我在使用項目方法時遇到問題,它始終使用強類型顯示Id null

var result=  await _xyz.Aggregate()
                       .Match(e => 
                       e.Id != ObjectId.Empty
                       && e.StartDate.HasValue
                       && e.StartDate >= DateTime.Today
                       && e.ABC.Any(a => abcIds.Contains(a.abcId)))
                      .Project(p => new XyzSummary()
                      {
                           Id=  p.Id,
                           Name = p.Name,
                           ABC = (List<ABC>)p.ABC.Where(a => abcIds.Contains(a.abcId)),
                           EventVenue = p.EventVenue,
                           StartDate = p.StartDate,
                           City = p.City,
                           LngLat = p.LngLat,
                      })
                      .ToListAsync();

這是我的XyzSummary模型

[BsonIgnoreExtraElements]
public class XyzSummary 
{
    [BsonId]
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public Abcummary EventVenue { get; set; }       
    public DateTime? StartDate { get; set; }
    public string City { get; set; }
    public GeoJson2DCoordinates LngLat { get; set; }
}

查詢返回正確的結果,但是如果我從投影中刪除類名,則投影后它始終顯示為“ Id”為空,然后工作正常,但使用類名時它始終顯示為id

任何人都可以幫助我。

謝謝

為什么還要使用聚合?

這段代碼會做同樣的事情:

 var result = await _xyz.Find(e => e.Id != ObjectId.Empty && e.StartDate.HasValue && e.StartDate >= DateTime.Today) .ToListAsync(); 

也許我錯過了一些東西。 讓我知道我是否=)

編輯:我錯過了一些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM