Skip to content

Diagnostics catalogue

Filtering.Net ships 24 compile-time analyzer rules — 16 errors (FN0001FN0016) and 8 warnings (FN1001FN1008). Both dotnet build and the IDE surface them; the rule's helpLinkUri brings you back to this page.

Errors

Id Rule Trigger
FN0001 DuplicateMap Property is mapped by multiple [Map] methods on the same filter class.
FN0002 DuplicateSortable Property is marked Sortable = true on multiple [Map] methods.
FN0003 MapAndPropertyMapBoth Property has both [Map] and [PropertyMap]. Use one or the other.
FN0004 PropertyNotFound Property does not exist on the entity type passed to [GenerateFilter<T>].
FN0005 IncompatibleProfile Profile cannot be applied to the property's CLR type.
FN0006 UnknownOperator Operator name is not declared by the resolved profile.
FN0007 MissingPartial [Map] method is not declared partial.
FN0008 NoInferableProfile Property's CLR type has no built-in primitive profile; specify Profile = typeof(...) explicitly.
FN0009 DuplicateInterceptor Property has multiple [InterceptValue] declarations.
FN0010 NonStaticOperator [FilterOperator] member must be public static.
FN0011 AliasCollision Alias collides with another property or alias on the entity (case-insensitive).
FN0012 InvalidBaseProfile [FilterProfile(BasedOn = typeof(X))] references a type not marked with [FilterProfile].
FN0013 InterceptorWithoutMap [InterceptValue] declared without a matching [Map] for the property.
FN0014 AmbiguousProfile Property's CLR type matches multiple profiles; use [Map(typeof(...))] to pick one.
FN0015 ProfileMissingExtractor Standalone [FilterProfile] is missing required extractor methods (TryGetValue / TryGetArray).
FN0016 DuplicateOperatorOnProfile Operator name is declared more than once on the same profile.

Warnings

Id Rule Trigger
FN1001 DateTimeUtcNowInLambda DateTime.UtcNow / DateTime.Now referenced directly inside a [FilterOperator] lambda.
FN1002 NotSortableLikelyOmission Property's CLR type is naturally sortable but Sortable = true is missing.
FN1003 ProfileUnused Filter profile is declared but never referenced by any [Map].
FN1004 OperatorUnused Operator is declared on a profile but never reachable from any consumer.
FN1005 ZeroOperatorsAllowed Only / Except resolve to an empty operator set; filter leaves will always fail validation.
FN1006 NullableNavInPath Mapped path crosses a nullable navigation property.
FN1007 UntranslatableMethodInOperator Operator body uses a method that is not in the EF Core translatable allow-list.
FN1008 FilterValueTypeUnregistered Filter value type is not registered in any visible JsonSerializerContext (NativeAOT/trim setups).