質問: 多くのエンティティのバッチ挿入を実行する必要があるため、これを行う最善の方法は`SqlBulkCopy`クラスを使用すること`SqlBulkCopy` 。ただし、そのクラスは`DataReader`インスタンスで動作しますが、私のコードはTがエンティティークラスであるIEnumerableで動作します。 IEnumerableをDataReaderに変換するために、次のコードを見つけました: LINQ Entity Data Reader 。 このコードは正常に機能しますが、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; } ``` この変更後、列挙型も認識されます。