我现在想检查传入的列以查看它是什么类型的枚举,并基于此,我为该列返回正确的数据库类型。我无法让它工作,不知道如何:
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;
}
}