にて DB データをエクスポートする機能を紹介いたしました。
今回は、対となるインポート機能を開発いたします♪
インポート機能のポイント
こちらのシステムでインポート機能を考えます。ポイントは次の 2 点です。
- CSV の 1 行に Parent とその Child を記入する。
- インポートできる子ども (Child) は 2 人まで。
Parent 1-n Child という関係を持っております。
ですのでシステム上は、Parent は必ず 1 つですけれども、それに紐づく Child はいくつあっても問題ありません。
ですけれども、インポート機能におきましては子どもの数の最大数を制限しませんと CSV ファイルの仕様を固めることが難しくなります。
したがいまして、今回は Child の数を最大 2 つとし、それ以上登録したい場合はウェブブラウザから追加する、という運用方法を想定いたしました。
CSV インポート開発の流れ
に沿ってサンプルプロジェクトを作成したところからスタートです。
ソリューションおよびプロジェクト名は Sample3 といたしました。
- コントローラー CsvController.cs をスキャフォールディング作成
- アップロードファイルに対応するモデル CsvFile.cs を作成
- アップロードするファイルの種類を検証する属性クラス UploadFileAttribute の作成
- ビュー Import.cshtml の作成
- インポート処理を司るサービスクラス CsvImportService の作成
- テスト CSV ファイル作成と、インポートの確認