埋め込みドキュメントの値で結果を並べ替えようとしています。
次のようなモデルを検討してください。
public class Car
{
public Guid ID { get; set; }
public string Name { get; set; }
public IEnumerable<Passenger> Passengers { get; set; }
}
public class Passenger
{
public Guid ID { get; set; }
public virtual string Name { get; set; }
public virtual int Age { get; set; }
}
Car
コレクションをクエリして、Passenger.Age で注文しようとしています。
私のクエリは次のようになります。
var results = (from car in _db.GetCollection<Car>("car").AsEnumerable()
from passenger in car.Passengers
where car.Name == "Ford"
orderby passenger.Age).ToList();
これにより、次の例外が発生します。
SelectMany クエリ演算子はサポートされていません。
これは当然のことながら、C# mongo ドライバーの制限です。
回避策はありますか?
それができない場合、 .ToList() の後にどのように注文できますか?