/// <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コミット } }