アイビー先生の力も借りてみましたが、とっかかりの時点で使うInferColumnsメソッドがそもそもまあCSVが基本でSQLiteとかのデータ読込には対応してないので、前回リストに入れたものをデータビューにとかは出来ない。って事は、まあね、ソースをSQLiteからCSVとして抜き出して、それを元にすれば...ってこれするなら単純にモデルビルダーで行けるじゃんorz なのでautoMLについて調べる気力が失せました😨
なので、ちと方向転換して何をCSVとして吐き出すかがキーになりそうで、それを検討しながらまたCsvHelperのお世話になるんですが、既に忘れてます😖 出力用のクラスを
internal class STSrc { public string JouCD { get; set; } public byte TrackCD { get; set; } public short Kyori { get; set; } public byte Tenko { get; set; } public byte Baba { get; set; } public long Chichi { get; set; } public float KishuSyoritsu { get; set; } public float ChokyosiSyoritsu { get; set; } public float Souha { get; set; } public STSrc ( string JouCD, byte TrackCD, short Kyori, byte Tenko, byte Baba, long Chichi, float KishuSyoritsu, float ChokyosiSyoritsu, float Souha ) { this.JouCD = JouCD; this.TrackCD = TrackCD; this.Kyori = Kyori; this.Tenko = Tenko; this.Baba = Baba; this.Chichi = Chichi; this.KishuSyoritsu = KishuSyoritsu; this.ChokyosiSyoritsu = ChokyosiSyoritsu; this.Souha = Souha; } }
として、このマッピング用に
internal class STTable : ClassMap<STSrc> { private STTable() { Map(c => c.JouCD).Index(0).Name("競馬場コード"); Map(c => c.TrackCD).Index(1).Name("トラックコード"); Map(c => c.Kyori).Index(2).Name("距離"); Map(c => c.Tenko).Index(3).Name("天候コード"); Map(c => c.Baba).Index(4).Name("馬場状態コード"); Map(c => c.Chichi).Index(5).Name("繁殖登録番号_父"); Map(c => c.KishuSyoritsu).Index(6).Name("騎手勝率"); Map(c => c.ChokyosiSyoritsu).Index(7).Name("調教師勝率"); Map(c => c.Souha).Index(8).Name("走破タイム"); } }
と準備して、
List<STSrc> st = new List<STSrc>();
をリーダーループ前に宣言して、
kaisaibi = rs.GetDateTime("KAISAIBI"); jouCD = rs.GetString("JOUCD"); rno = rs.GetByte("RNO"); tracdCD = rs.GetByte("TRACKCD"); ketto = rs.GetInt32("KETTO"); syoritsu = GetSyoritsu(cmdCK, kaisaibi, jouCD, rno, ketto, tracdCD); // データクラス STSrc shinbaTime = new STSrc( jouCD, tracdCD, rs.GetInt16("KYORI"), rs.GetByte("TENKO"), rs.GetByte("BABA"), GetChichi(cmdU, ketto), syoritsu.Kishu, syoritsu.Chokyosi, rs.GetFloat("SOUHA") ); st.Add(shinbaTime);
と回してリスト作ったら、
var path = @"ShinbaTime.csv"; var config = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = true }; using (StreamWriter sw = new StreamWriter(path, false)) using (var csv = new CsvWriter(sw, config)) { csv.Context.RegisterClassMap<STTable>(); csv.WriteRecords(st); }
とすればCSV出力は完了する。
CSVが出来たのでまあ普通にモデルビルダーが動かせるので試してみた。
0 件のコメント:
コメントを投稿