Skip to content

Analyzer suggestion: mark DbSet's nullability suppression property initializer as unnecessary #29988

@DoctorKrolic

Description

@DoctorKrolic

Consider the following basic EF Core setup:

using Microsoft.EntityFrameworkCore;

class MyClass
{
    
}

class MyDbContext : DbContext
{
    public DbSet<MyClass> MyDbSet { get; set; } = null!;
}

Prior to EF Core 7 this was a normal example of Db context declaration. However, since EF Core 7 introduced a nullability warning suppressor for DbSet properties, the = null!; is no longer needed and can be considered as unnecessary noise. It would be great to have an analyzer + codefix, that would suggest to remove the = null!; part.

Notes:

  1. By playing with diagnostic tags you can actually make = null!; fade out the way VS fades out all unnecessary code parts (usings, parentheses etc.). This should also work in Rider, but I am not sure
  2. The codefix should have proper fix-all support, so if a user updates his codebase from EF Core 6, he can just fix all such cases in several clicks
  3. The diagnostic should only trigger for actual nullability suppressions like = null!; or = default!;. It should not be reported for things like = null;, because without nullability suppression operator it is no longer a EF-specific case

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions