Skip to end of metadata
Go to start of metadata

Nous gérons deux cas de figure : lecture fine en précisant les données à lire, ou lecture en se basant sur toutes les relations définies dans le fichier de mapping de l'ORM : propriété de classe C# ↔ colonne de table en base.

En précisant les données à lire

Lecture d'une instance avec choix des données à lire
/// <summary>
/// Retourne un objet du type T avec les données rendues par une requete SELECT dont on ne s'intéresse qu'au premier résultat retourné. Si pas de résultat retourne null.
/// <para>Le template sera du type <c>"SELECT {0} FROM {1} [WHERE ...]"</c></para>
/// </summary>
/// <typeparam name="T">Type C#</typeparam>
/// <param name="lstPropertiesNames_">Noms des propriétés de l'objet T à utiliser pour les champs à sélectionner</param>
/// <param name="sqlTemplateName_">Nom du template SQL</param>
/// <param name="lstWhereMetaNames_">Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral. 
/// Pour formater à partir de {2} dans le template SQL. Peut être null</param>
/// <param name="lstWhereValues_">Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE" </param>
/// <param name="transaction_">Transaction optionelle (créée par appel à DbManager)</param>
/// <returns>Retourne un objet de type T rempli par les donnnées du DataReader, ou null.</returns>
/// <exception cref="OOrmHandledException">Toute sorte d'erreur</exception>
public static T SelectSingle<T>(List<string> lstPropertiesNames_, 
				string sqlTemplateName_, 
				List<string> lstWhereMetaNames_ = null, 
				List<object> lstWhereValues_ = null, 
				OOrmDbTransactionWrapper transaction_ = null)
            where T : IDatabaseEntityObject, new()
Variante : lecture d'un ensemble d'instances avec choix des données à lire
/// <summary>
/// Retourne une liste d'objets du type T avec les données rendues par une requete SELECT. Si pas de résultat retourne une liste vide.
/// <para>Le template sera du type <c>"SELECT {0} FROM {1} [WHERE ...]"</c></para>
/// </summary>
/// <typeparam name="T">Type C#</typeparam>
/// <param name="lstPropertiesNames_">Noms des propriétés de l'objet T à utiliser pour les champs à sélectionner</param>
/// <param name="sqlTemplateName_">Nom du template SQL</param>
/// <param name="lstWhereMetaNames_">Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral. 
/// Pour formater à partir de {2} dans le template SQL. Peut être null</param>
/// <param name="lstWhereValues_">Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE". Peut être null </param>
/// <param name="transaction_">Transaction optionelle (créée par appel à DbManager)</param>
/// <returns>Retourne une liste composée d'objets de type T</returns>
/// <exception cref="OOrmHandledException">Toute sorte d'erreur</exception>
public static List<T> Select<T>(List<string> lstPropertiesNames_, string sqlTemplateName_, List<string> lstWhereMetaNames_ = null, List<object> lstWhereValues_ = null, OOrmDbTransactionWrapper transaction_ = null)
where T : IDatabaseEntityObject, new()

Paramètres en entrée :

  • lstPropertiesNames_ : Noms des propriétés de l'objet T à utiliser pour les champs à sélectionner

  • sqlTemplateName_ : Nom du template SQL

  • lstWhereMetaNames_ : Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral, voir Référence.
  • lstWhereValues_ : Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE"
  • transaction_ :Transaction optionelle (créée par appel à DbManager)

Sortie :

Un plusieurs objets du même type, dont seulement les propriétés précisées auront leur valeur positionnée depuis les données de la base de données.

En lisant tous les champs de la table concernée

Lecture d'une instance complète
/// <summary>
/// Retourne un objet du type T avec les données rendues par une requete SELECT dont on ne s'intéresse qu'au premier résultat retourné. Si pas de résultat retourne null.
/// <para>Le template sera du type <c>"SELECT * FROM {0} [WHERE ...]"</c></para>
/// </summary>
/// <typeparam name="T">Type C#</typeparam>
/// <param name="sqlTemplateName_">Nom du template SQL</param>
/// <param name="lstWhereMetaNames_">Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral. 
/// Pour formater à partir de {1} dans le template SQL. Peut être null</param>
/// <param name="lstWhereValues_">Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE" </param>
/// <param name="transaction_">Transaction optionelle (créée par appel à DbManager)</param>
/// <returns>Retourne un objet de type T rempli par les donnnées du DataReader, ou null</returns>
/// <exception cref="OOrmHandledException">Toute sorte d'erreur</exception>
public static T SelectSingleAllColumns<T>(string sqlTemplateName_, List<string> lstWhereMetaNames_ = null, List<object> lstWhereValues_ = null, OOrmDbTransactionWrapper transaction_ = null)
            where T : IDatabaseEntityObject, new()
Variante : lecture d'un ensemble d'instances complètes
/// <summary>
/// Retourne une liste d'objets du type T avec les données rendues par une requete SELECT. Si pas de résultat retourne une liste vide.
/// <para>Le template sera du type <c>"SELECT {0} FROM {1} [WHERE ...]"</c></para>
/// </summary>
/// <typeparam name="T">Type C#</typeparam>
/// <param name="lstPropertiesNames_">Noms des propriétés de l'objet T à utiliser pour les champs à sélectionner</param>
/// <param name="sqlTemplateName_">Nom du template SQL</param>
/// <param name="lstWhereMetaNames_">Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral. 
/// Pour formater à partir de {2} dans le template SQL. Peut être null</param>
/// <param name="lstWhereValues_">Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE". Peut être null </param>
/// <param name="transaction_">Transaction optionelle (créée par appel à DbManager)</param>
/// <returns>Retourne une liste composée d'objets de type T</returns>
/// <exception cref="OOrmHandledException">Toute sorte d'erreur</exception>
public static List<T> Select<T>(List<string> lstPropertiesNames_, string sqlTemplateName_, List<string> lstWhereMetaNames_ = null, List<object> lstWhereValues_ = null, OOrmDbTransactionWrapper transaction_ = null)
    where T : IDatabaseEntityObject, new()

Paramètres en entrée :

  • sqlTemplateName_ : Nom du template SQL

  • lstWhereMetaNames_ : Pour les colonnes de la clause where : valeur dont la syntaxe indique qu'il s'agit d'une propriété de classe C#/un paramètre dynamique/un littéral, voir Référence.
  • lstWhereValues_ : Valeurs pour les paramètres ADO.NET pour la partie du template après "WHERE"
  • transaction_ :Transaction optionelle (créée par appel à DbManager)

 

Sortie :

Un plusieurs objets du même type, dont toutes les propriétés présentes dans le mapping de l'ORM auront leur valeur positionnée depuis les données de la base de données.

  • No labels