Bonjour,

j'ai une fonction qui permet de faire des conversions entre type bdd (EF) et type C#

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public static T ConvertTo<T>(this DbDataRecord record)
      {
         T item = Activator.CreateInstance<T>();
         for (int f = 0; f < record.FieldCount; f++)
         {
            PropertyInfo p = item.GetType().GetProperty(record.GetName(f));
            if (p != null & & p.PropertyType == record.GetFieldType(f))
            {
               p.SetValue((item, record.GetValue(f), null);
            }
         }
 
         return item;
      }

Seulement elle sort une exception si jamais mon record a une valeur nulle.
J'ai donc modifiée la ligne
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
p.SetValue((item, record.GetValue(f), null);
en
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
p.SetValue((item, record.GetValue(f) == DBNull.Value ? "" : record.GetValue(f), null);

Bien entendu cela ne fonctionne que pour les String.
J'aurais aimé savoir s'il y avait moyen de faire quelque chose d'un brin plus générique, prenant en compte le type de p.

Merci d'avance