ここで、着信列をチェックして列挙型のタイプを確認し、それに基づいて、列の正しいDBタイプを返します。これを機能させることができません。方法がわかりません。
public DbType GetColumnDbType<T>(T column) where T: IComparable, IFormattable, IConvertible
{
if (!typeof(T).IsEnum) throw new ArgumentException("the object passed in must an enum type");
switch (column)
{
case (Enums.MemberColumn)column:
switch (Enums.MemberColumn)
{
case Enums.MemberColumn.Address1:
return DbType.String;
break;
case Enums.MemberColumn.City:
return DbType.String;
break;
case Enums.MemberColumn.State:
return DbType.String;
break;
}
}
.....
更新しました
これが私が試したものですが、コンパイラは最初の行に「積分型の値が期待されます」と文句を言っています
switch(typeof(T))
{
case (typeof (Enums.MemberColumn)):
switch ((Enums.MemberColumn) column)
{
case Enums.MemberColumn.Address1:
return DbType.String;
break;
case Enums.MemberColumn.City:
return DbType.String;
break;
case Enums.MemberColumn.State:
return DbType.String;
break;
default:
throw new ArgumentException("Unsupported enum type.", "MemberColumn");
break;
}
}