MongoDB .NET Analyzer 1.5.0 Release Notes
This is the general availability release for the 1.5.0 version of the analyzer.
The main new features in 1.5.0 include:
VS-141 New analysis rules introduced: EFCore to MQL:
The new analysis rules enable displaying MQL for MongoDB Entity Framework Core Provider expressions in compile time.
For example:
var mongoClient = new MongoClient("mongodb://localhost:27017");
var db = MoviesDbContext.Create(mongoClient.GetDatabase("movies"));
// LINQ filter query (analyzer provides MQL as an information message)
var movies = await db.Movies
.Where(m =>
m.Genre == genre &&
m.Score >= minScore &&
m.Title.Contains(titleSearchTerm))
.OrderBy(m => m.Score)
.ToListAsync();
public class MoviesDbContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
public static MoviesDbContext Create(IMongoDatabase database) =>
new(new DbContextOptionsBuilder<MoviesDbContext>()
.UseMongoDB(database.Client, database.DatabaseNamespace.DatabaseName)
.Options);
public MoviesDbContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
Will display the following MQL for the db.Movies
query:
db.coll.Aggregate([{ "$match" : { "Genre" : genre, "Score" : { "$gte" : minScore }, "Title" : /titleSearchTerm/s } }, { "$sort" : { "Score" : 1 } }])
VS-156 Support for strong named 2.28 driver.
VS-146 Support fully qualified names for data models.
The full list of JIRA issues resolved in this release is available here.