これは、1-1 Table.Column-Class.Propertyを自動的に照合する処理の一部です。私はlisted hereのようにそれぞれの可能な基底型の基底をカバーしようとしています。私はORMの作業に取り組んできましたが、現在はId = row["Id"] as int
をやっている環境に戻ってきましたが、キャストのそのような強引なやり方ではなく、プロパティの属性を使ってDataTable.ExtractAs<MyClass>
これらの属性に基づいてIList<MyClass>
を作成しようとします。SqlDataTypeをC#Enumにキャストする
質問:すべての整数型をカバーするC#列挙型へのSqlDataTypeからのキャストを処理する良い方法はありますか?
今、私はこれをやっている:
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
内のこれらの整数型に対処するメンバーは見当たりません。
良いが...、 – hunter