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 также будет распознан.