EF has a "pubternal" policy, which means that we almost never use C# internal, but instead make things public, either in an Internal namespace or with an [EntityFrameworkInternal] attribute; an EF InternalUsageDiagnosticAnalyzer generates diagnostic warnings when usage of such types/members is detected from outside the assembly.
With the introduction of the Experimental attribute, we can replace our own mechanism with this. This would allow removing the analyzer, which isn't perfect and misses some cases.
EF has a "pubternal" policy, which means that we almost never use C#
internal, but instead make things public, either in an Internal namespace or with an [EntityFrameworkInternal] attribute; an EF InternalUsageDiagnosticAnalyzer generates diagnostic warnings when usage of such types/members is detected from outside the assembly.With the introduction of the Experimental attribute, we can replace our own mechanism with this. This would allow removing the analyzer, which isn't perfect and misses some cases.