private static SqlTypeProvider GetDefaultSqlTypeProvider(this Column column) { SqlTypeProvider result; if (s_defaultSqlTypeProviders.TryGetValue(column.DataType, out result)) { return(result); } var columnType = column.GetType(); var columnDataType = column.DataType; var enumType = columnDataType.GenericTypeArguments[0]; if (columnType.IsDerivedFromGeneric(typeof(_ByteEnum <>))) { var methodInfo = typeof(ColumnExtensions).GetStaticMethodInfo(nameof(GetByteEnumColumnDescriptorProvider)); return(s_defaultSqlTypeProviders.GetOrAdd(columnType, BuildSqlTypeProviderFactory(methodInfo, enumType))); } if (columnType.IsDerivedFromGeneric(typeof(_CharEnum <>))) { var methodInfo = typeof(ColumnExtensions).GetStaticMethodInfo(nameof(GetCharEnumColumnDescriptorProvider)); return(s_defaultSqlTypeProviders.GetOrAdd(columnType, BuildSqlTypeProviderFactory(methodInfo, enumType))); } if (columnType.IsDerivedFromGeneric(typeof(_Int16Enum <>))) { var methodInfo = typeof(ColumnExtensions).GetStaticMethodInfo(nameof(GetInt16EnumColumnDescriptorProvider)); return(s_defaultSqlTypeProviders.GetOrAdd(columnType, BuildSqlTypeProviderFactory(methodInfo, enumType))); } if (columnType.IsDerivedFromGeneric(typeof(_Int32Enum <>))) { var methodInfo = typeof(ColumnExtensions).GetStaticMethodInfo(nameof(GetInt32EnumColumnDescriptorProvider)); return(s_defaultSqlTypeProviders.GetOrAdd(columnType, BuildSqlTypeProviderFactory(methodInfo, enumType))); } if (columnType.IsDerivedFromGeneric(typeof(_Int64Enum <>))) { var methodInfo = typeof(ColumnExtensions).GetStaticMethodInfo(nameof(GetInt64EnumColumnDescriptorProvider)); return(s_defaultSqlTypeProviders.GetOrAdd(columnType, BuildSqlTypeProviderFactory(methodInfo, enumType))); } throw new NotSupportedException(DiagnosticMessages.ColumnTypeNotSupported(column.GetType())); }
public void Resources_correctly_embeded() { Assert.IsNotNull(DiagnosticMessages.ColumnTypeNotSupported(typeof(_String))); }