5

多くのエンティティのバッチ挿入を行う必要があるため、そのための最善の方法はSqlBulkCopyクラスを使用することであると考えました。ただし、そのクラスはDataReaderインスタンスで動作しますが、私のコードはIEnumerableで動作します。ここで、Tはエンティティクラスです。IEnumerableをDataReaderに変換するために、次のコードを見つけました:LINQ EntityDataReader

このコードは正常に機能しますが、1つの問題があります。エンティティタイプの列挙型プロパティがデータリーダーに含まれていない(したがって、正しく挿入されていない)。列挙型のプロパティを認識させるにはどうすればよいですか?

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 に答える