Cela fait partie d'un processus pour faire correspondre 1-1 Table.Column-Class.Property automatiquement. J'essaye de couvrir les bases pour chaque type de base possible comme listed here. Je travaille de plus en plus avec ORM mais maintenant je suis retourné à un environnement où ils font Id = row["Id"] as int
mais au lieu de faire cette façon de lancer la force brute, j'ai juste utilisé des attributs sur les propriétés pour que je puisse écrire DataTable.ExtractAs<MyClass>
qui tente de créer et IList<MyClass>
en fonction de ces attributs.Coulée SqlDataType à C# Enum
Mes questions sont: Y a-t-il une meilleure façon de gérer la conversion d'un SqlDataType à un enum C# qui couvre tous les types entiers?
En ce moment je fais ceci:
internal static bool TrySetValue<T>(T t, PropertyInfo property, DataRow row, string columnName)
{
Type propertyType = property.PropertyType;
// other logic and unique cases
if (propertyType.IsEnum
&& Enum.GetUnderlyingType(propertyType) == value.GetType())
{
property.SetValue(t, value, null);
return true;
}
}
Est-ce surpuissant? Y a-t-il une meilleure manière de faire cela? Je ne vois aucun membre au sein de PropertyInfo
qui adresse ces types intégrales.
assez bon ..., – hunter