Partager via


Accès aux données dans le moteur des règles d'entreprise

En mode natif, le moteur de règles ne prend en charge que des objets .NET. Pour gérer des données d'une base de données, vous pouvez utiliser directement les objets ADO.NET. Toutefois, le moteur fournit des classes d'assistance afin de simplifier l'utilisation des données de la base de données à partir de règles. Le moteur de règles étend sa prise en charge en exposant trois types liés à la base de données : TypedDataRow, TypedDataTable et DataConnection. Cette section décrit ces classes d'assistance, fournit des recommandations sur l'utilisation de chaque type et indique quelles sont les conséquences de leur utilisation sur les performances.

Les classes d'assistance sont les suivantes :

  • TypedDataRow : Construit à l’aide d’une référence à un instance DataRow ADO.NET. TypedDataRow est un choix évident pour les règles qui traitent uniquement les données d’une ou d’un petit nombre de lignes d’une table particulière.

  • TypedDataTable : Littéralement une collection d’objets TypedDataRow . Chaque ligne de la table de base de données est encapsulée en tant que TypedDataRow et déclarée dans la mémoire de travail par le moteur de règle.

    Un TypedDataTable nécessite une ADO.NET DataTable en mémoire, ce qui peut être une surcharge des performances si ce DataTable particulier contient un très grand nombre de lignes. Si un petit nombre de lignes dans la table de base de données est pertinent et que vous pouvez déterminer ces lignes avant d’appeler les règles, utilisez un DataTable, sinon utilisez TypedDataRow. L’hypothèse est qu’un nombre élevé de lignes dans le DataTable sont pertinentes pour les règles.

  • DataConnection : représente une table d'une base de données à laquelle on accède via une connexion de base de données. La différence entre DataConnection et TypedDataTable est qu’en plus du nom du jeu de données et du nom de la table, DataConnection nécessite une connexion de base de données utilisable et éventuellement un contexte de transaction de base de données.

    Certains prédicats ou tous les prédicats utilisés dans les règles avec DataConnection feront partie des contraintes de requête par rapport à la connexion de base de données. Seules les lignes qui répondent aux contraintes de requêtes sont extraites de la base de données et utilisées par le moteur. Ce mécanisme offre de meilleures performances et consomme moins de mémoire que la conservation d’un DataTable très volumineux en mémoire.

Dans cette section