INTRODUCTION · LINQ-SOURCEGENERATOReQuantic.Linq.SourceGeneratoreQuantic.Linq.SourceGenerator est la moitié à la compilation d'eQuantic.Linq : il écrit les spécifications, les filtres et les trieurs dont une classe marquée a besoin, avec Roslyn.
Aperçu
Rien n'est résolu par réflexion pendant qu'une requête attend : le coût passe à la compilation et les erreurs au compilateur.Il demande .NET 6 ou plus, se place à côté du paquet principal, et se configure par attribut : un sur la classe, un sur chaque propriété qui doit recevoir des opérateurs.
Installer
shell
dotnet add package eQuantic.Linq.SourceGenerator
Ce qu'elle fait
Sans réflexion à l'exécutionChaque spécification est écrite à la compilation : la requête ne paie rien pour déterminer quoi interroger.
Les erreurs pendant que vous écrivezCe qu'il génère sont de vrais membres : ils s'autocomplètent, et un nom qui n'existe pas est une erreur de compilation, non un résultat vide.
Configuration par attributDeux attributs : pour quelles classes générer, et quels opérateurs chaque propriété doit recevoir.
Il s'accorde à l'existantIl fonctionne avec eQuantic.Linq, avec Entity Framework, et avec tout ce qui accepte une expression.
Sans réflexion à l'exécutionChaque spécification est écrite à la compilation : la requête ne paie rien pour déterminer quoi interroger.
Les erreurs pendant que vous écrivezCe qu'il génère sont de vrais membres : ils s'autocomplètent, et un nom qui n'existe pas est une erreur de compilation, non un résultat vide.
Configuration par attributDeux attributs : pour quelles classes générer, et quels opérateurs chaque propriété doit recevoir.
Il s'accorde à l'existantIl fonctionne avec eQuantic.Linq, avec Entity Framework, et avec tout ce qui accepte une expression.
Démarrage rapide
Le référencer comme dépendance de compilation — Il s'exécute pendant la compilation et n'est livré avec rien : c'est ce que dit PrivateAssets.
XML
<PackageReference Include="eQuantic.Linq" Version="1.6.0" /><PackageReference Include="eQuantic.Linq.SourceGenerator" Version="1.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets></PackageReference>
Marquer ce qui doit être généré — L'attribut sur la classe l'inscrit. Celui d'une propriété choisit les opérateurs qui lui conviennent.
C#
[GenerateSpecifications]public class Product{ public int Id { get; set; } [SpecProperty(FilterOperators = FilterOperator.Equals | FilterOperator.Contains)] public string Name { get; set; } = string.Empty; [SpecProperty(FilterOperators = FilterOperator.GreaterThan | FilterOperator.LessThan)] public decimal Price { get; set; }}
Utiliser les membres qu'il a écrits — Ils se trouvent sur la classe marquée : la requête se lit comme une phrase sur le modèle, pas sur la table.
C#
var cheapCoffee = Product.Specifications .NameContains("coffee") .And(Product.Specifications.PriceLessThan(10m)); var found = await _repository.GetAsync(cheapCoffee);
Surface publique
ESPACE DE NOMS
SURFACE PUBLIQUE
GenerateSpecificationsAttribute
Marque une classe pour laquelle le générateur doit écrire des spécifications.
SpecPropertyAttribute
Indique quels opérateurs de filtre une propriété doit recevoir.
FilterOperator
Les opérateurs qu'une propriété peut recevoir : égal, contient, commence par, supérieur à, et les autres.
Vous préférez lire du code ?
Chaque paquet est sous licence MIT et public, et les exemples sont prêts à copier-coller.
Prêt à livrer quelque chose de réel ?
Réservez un appel de découverte de 30 minutes. Dans l'heure, nous vous dirons si nous sommes le bon partenaire — ou qui l'est.
Prêt à livrer quelque chose de réel ?
Réservez un appel de découverte de 30 minutes. Dans l'heure, nous vous dirons si nous sommes le bon partenaire — ou qui l'est.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
© 2026 eQuantic Tech. Tous droits réservés.