DBの型を変更したらforeachでエラーがでるようになった
テーブルのとあるフィールドの型をintからfloatに変更したらforeachでエラーがでるようになった
using (DataContext db = new DBDataContext()) { // ストアドプロシージャ実行して値を取得 var n = db.GetData("2015-09-15"); foreach (var j in n) { Debug.WriteLine(j.id); } }
foreachの値変換で型が違うと怒られる。
色々アドバイスを頂きながら調べてみたところ、どうやらストアドプロシージャ名+Resultという型(今回だとGetDataResult)という型が自動実装されているらしく、そこの型が変わっていなかった模様。
手動でintからdoubleに変更したら問題なく動いた。
LINQ TO SQLクラス、DB側を変更した場合にどうやって同期させたらいいかがよくわかってない。これも要調査。
@fmty あ、ストアドの実行結果そのままじゃあかんはず。配列になっているのが間違いないならOfType(型)とかでその型のシーケンスに変換してやらないと。確かIDataRecordとかだったよーな
— ぽんこつロボ (@scrapbuild) 2015, 9月 15