//何回か流すようにテーブルドロップ。初回は落ちるのでtryしておく。}}そしたら次はBulkCopy。NpgsqlDbType.Varchar;}Npgsqlのバルクコピーは↓の感じで、Objectの配列として渡してもOKな気がする。object[schemaDt.Columns.Count];sqlDr.GetValues(dtArray);writer.WriteRow(dtArray);ただ、公式のこの辺に「NpgsqlDbTypeでデータの型をちゃんと指定する事を激しくお勧めする」って書いてあるのでそーした。データ型の指定はいつの時代になってもとっても重要。あと、インデックスはデータ入れ終わってから、まとめてやった方が多分よいと思う。最後に、対象のDBに対して「VACUUM」ってコマンドを投げてあげる。不要領域の削除とかなんかもろもろやるらし。テーブルロックとかされる場合もあるらしいので、誰か触ってる時にはやらない方がいい。NpgsqlのCopyはいいんだけど、Writeのタイミングで書きに行ってるわけじゃないよね?なんだかいつ実行してるのかロジック見る感じでよくわからない。usingしてるし、Disposeされるときにやってるのかなと愚考。個人的に明示してくれる方がわかりやすい。Framework使用でDBをPostgreSQLにしてみるいつもはSQLServer使ってたんだけど、たまにはPostgreSQLも使ってみようかと思いまして、やってみた。MVCはVisualStudioでテキトーにテンプレを使う。メンドーなので認証なし。したらNugetで下の3つのパッケージをインストール。EFはEFのために必要。EFでPostgre使うためにNpgsql.EntityFrameworkが必要。これのためにNpgsqlが必要。