Это часть процесса автоматического сопоставления 1-1 Table.Column-Class.Property.Я пытаюсь охватить базы для каждого возможного типа базы как , перечисленное здесь .Я работаю с ORM все больше и больше, но теперь я вернулся к среде, где они делают Id = row["Id"] as int
, но вместо того, чтобы использовать этот метод грубой силы, я просто использовал атрибуты в свойствах, чтобы я мог написатьDataTable.ExtractAs<MyClass>
, который пытается создать, и IList<MyClass>
на основе этих атрибутов.
Мои вопросы: есть ли лучший способ обработки преобразования типов из SqlDataType в перечисление C #, охватывающее все целые типы?
Прямо сейчас я делаю это:
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;
}
}
Это перебор?Есть лучший способ сделать это?Я не вижу ни одного члена в PropertyInfo
, который бы обращался к этим целым типам.