5

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

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

4

1 回答 1

4

我发现这是由于该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;
}

在此修改后,枚举类型也将被识别。

于 2012-11-15T08:02:32.473 回答