Skip to content

v1.5.0

Latest
Compare
Choose a tag to compare
@BorisDog BorisDog released this 13 Aug 21:27
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.