Fonction générique pour conversion bdd/c#
Bonjour,
j'ai une fonction qui permet de faire des conversions entre type bdd (EF) et type C#
Code:
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:
p.SetValue((item, record.GetValue(f), null);
en
Code:
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