INNER CODE UNIT · C#
driverWhere
mongodb/mongo-efcore-provider · benchmarks/MongoDB.EntityFrameworkCore.Benchmarks/HeadlineBenchmarks.cs:53
var driverWhere = _flatColl.AsQueryable().Where(f => f.Active).ToList().Count;
var driverReview = DriverReviewInclude();
using var ef = new BenchmarkDbContext(_efOptions);
var efAll = ef.FlatItems.AsNoTracking().ToList().Count;
var efWhere = ef.FlatItems.AsNoTracking().Where(f => f.Active).ToList().Count;
var efReview = ef.Reviews.AsNoTracking().Include(r => r.Product).ToList().Count(r => r.Product != null);
if (driverAll != N || efAll != N)
throw new InvalidOperationException($"FlatItem count mismatch: driver={driverAll}, ef={efAll}, expected {N}.");
if (driverWhere != efWhere)
throw new InvalidOperationException($"Where count mismatch: driver={driverWhere}, ef={efWhere}.");
if (driverReview != N || efReview != N)
throw new InvalidOperationException($"Review+Product mismatch: driver={driverReview}, ef={efReview}, expected {N}.");
}
// Hand-written $lookup + $unwind equivalent of Reviews.Include(r => r.Product).
private int DriverReviewInclude()