Skip to content

v1.5.0

Latest
Compare
Choose a tag to compare
@BorisDog BorisDog released this 13 Aug 21:27
· 2 commits to main since this release
7c3cc17

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.