/// <summary>
 /// テストデータの追加
 /// 護衛隊群,護衛隊,艦種コード,艦種型,艦船データをテスト用に新規に追加します。
 /// </summary>
 public void InsertTestShipData()
 {
     using (var db = new VirtualDbContext()) {
         var ef = new EscortFlotilla { //テスト用護衛隊群の追加
             EscortFlotillaName = "テスト護衛隊群"
         };
         var ed = new EscortDivision {   //テスト用護衛隊の追加
             EscortDivisionName = "テスト護衛隊"
             , EscortFlotilla   = ef
         };
         var hc = new HullCode { //艦種コード
             HullCodeSymbol = "TEST"
         };
         var sc = new ShipClass {   //艦種型
             ShipClassName = "テスト型"
         };
         //1隻目
         var sds = new SelfDefenseShip {
             EscortDivision       = ed,
             HullCode             = hc,
             ShipNumber           = 9998,                    //艦船番号
             ShipName             = "てすと1",                  //艦名
             ShipClass            = sc,
             StandardDisplacement = 9999,                    //基準排水量
             FullLoadDisplacement = 9999,                    //満載排水量
             FullLength           = 999,                     //全長
             FullWidth            = 999,                     //全幅
             CommissionYear       = new DateTime(2018, 5, 7) //就役
         };
         db.SelfDefenseShips.Add(sds);
         //2隻目
         sds = new SelfDefenseShip {
             EscortDivision       = ed,
             HullCode             = hc,
             ShipNumber           = 9999,                    //艦船番号
             ShipName             = "てすと2",                  //艦名
             ShipClass            = sc,
             StandardDisplacement = 9999,                    //基準排水量
             FullLoadDisplacement = 9999,                    //満載排水量
             FullLength           = 999,                     //全長
             FullWidth            = 999,                     //全幅
             CommissionYear       = new DateTime(2018, 5, 7) //就役
         };
         db.SelfDefenseShips.Add(sds);
         //コミット
         db.SaveChanges();
     }
 }
        /// <summary>
        /// 艦船情報のインサート(登録)
        /// </summary>
        public void InsertShipData()
        {
            using (var db = new VirtualDbContext())
                using (var sr = new StreamReader(@"..\..\Data\ShipData.txt")) {
                    var tmp = sr.ReadToEnd().Split(new string[] { "\r\n" }
                                                   , StringSplitOptions.None);

                    for (int i = 0; i < tmp.Length; i++)
                    {
                        var sdstmp = tmp[i].Split(new string[] { "\t" }, StringSplitOptions.None);

                        /*
                         * LINQ to Entitiesでは配列をラムダ式に適用できないので変数に入れる
                         */
                        var dname    = sdstmp[0];                                  //所属護衛隊名
                        var hullcode = sdstmp[1];                                  //艦種コード
                        var scname   = sdstmp[4];                                  //艦型
                        var dt       = new DateTime(Int32.Parse(sdstmp[7]), 1, 1); //就役年

                        var sds = new SelfDefenseShip {
                            EscortDivision = db.EscortDivisions.Single(x =>
                                                                       x.EscortDivisionName == dname),
                            HullCode             = db.HullCodes.Single(x => x.HullCodeSymbol == hullcode),
                            ShipNumber           = Int32.Parse(sdstmp[2]),
                            ShipName             = sdstmp[3],
                            ShipClass            = db.ShipClasses.Single(x => x.ShipClassName == scname),
                            StandardDisplacement = Int32.Parse(sdstmp[5]),
                            FullLoadDisplacement = Int32.Parse(sdstmp[6]),
                            CommissionYear       = dt,
                            FullLength           = Double.Parse(sdstmp[8]),
                            FullWidth            = Double.Parse(sdstmp[9])
                        };
                        db.SelfDefenseShips.Add(sds); //データをインサート
                    }
                    db.SaveChanges();                 //DBコミット
                }
        }