Skip to content

False Positive with VSTHRD103 and EF DbSet AddRange #1480

@EklipZgit

Description

@EklipZgit

Bug description

EFCore AddRange method on dbsets incorrectly warns when using the params ...[] array overload.

Image

If you create the collection in advance as a list, no issue. However if you create as an array,

Image

Repro steps

    <PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
Any db context with a dbset.
Call AddRange with an array on the dbset.
Get warned about using AddRangeAsync instead (when you are not supposed to use AddRangeAsync unless you know you added async hooks to your dbcontext).

Expected behavior

No warning, or a way to tell the analyzer whether you use async hooks or not on your db context and have it be opt-in.

Actual behavior

Warning.

  • Version used:
    <PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
  • Application (if applicable):

Additional context

.NET 8.

    <TargetFramework>net8.0</TargetFramework>

EFCore (and related) packages

    <PackageVersion Include="LinqKit.Microsoft.EntityFrameworkCore" Version="8.1.8" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.13" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.13" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.13" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.13" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.6" />
    <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.13" />

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions