LINQ Entity Data Reader не поддерживает перечисления

Я должен сделать пакетную вставку множества сущностей, поэтому я решил, что лучший способ сделать это - использовать SqlBulkCopy учебный класс. Тем не менее, этот класс работает на DataReader экземпляры, тогда как мой код работает с IEnumerable, где T - мой класс сущности. Чтобы преобразовать мой IEnumerable в DataReader, я нашел следующий код: LINQ Entity Data Reader.

Этот код работает нормально, но есть одна проблема: свойства enum для моего типа сущности не включены в хранилище данных (и, следовательно, неправильно вставляются). Как я могу распознать свойства типа enum?

1 ответ

Решение

Я узнал, что это связано с IsScalarType метод без учета перечислений. Это можно легко исправить, изменив IsScalarType метод следующим образом:

private static bool IsScalarType(Type t)
{
    // The || t.IsEnum part is new and makes sure that enums are recognized
    return scalarTypes.Contains(t) || t.IsEnum;
}

После этой модификации тип enum также будет распознан.

Другие вопросы по тегам