Eri*_*oom 5 enums entity-framework sqlbulkcopy
我必须批量插入很多实体,所以我想最好的方法是使用SqlBulkCopy类。但是,该类对DataReader实例进行操作,而我的代码使用 IEnumerable,其中 T 是我的实体类。要将我的 IEnumerable 转换为 DataReader,我找到了以下代码:LINQ Entity Data Reader。
这段代码工作正常,但有一个问题:我的实体类型上的枚举属性未包含在数据读取器中(因此未正确插入)。如何识别枚举类型的属性?
我发现这是由于该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;
}
Run Code Online (Sandbox Code Playgroud)
修改后,枚举类型也将被识别。