LINQ实体数据读取器不支持枚举

entity-framework enums sqlbulkcopy

我必须对很多实体进行批量插入,所以我认为最好的方法是使用SqlBulkCopy类。但是,该类在DataReader实例上运行,而我的代码使用IEnumerable,其中T是我的实体类。为了将我的IEnumerable转换为DataReader,我找到了以下代码: LINQ Entity Data Reader

此代码工作正常,但有一个问题:我的实体类型的枚举属性不包含在datareader中(因此未正确插入)。如何识别枚举类型属性?

一般承认的答案

我发现这是由于IsScalarType方法没有考虑枚举。通过修改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;
}

在此修改之后,还将识别枚举类型。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因