2009-04-01 15 views
0

なぜ更新が行われないのか本当に混乱しています。これは非常に簡単です:SQLへのLinq - 更新が永続化されない

int goodID = 100; 

    DataContext db = new DataContext(); 

    Schedule schedule = db.Schedules.Single(s => s.ID == goodID); 

    // this wont persist - WHY NOT?! 
    schedule.Email = txtEmail.Text; 

    // this does persist 
    schedule.NumberCourses = 5; 

    db.SubmitChanges(); 

なぜフィールドの電子メールは、テキストボックスから値を取得していないのか分かりません。私は何を確認できますか?

EDIT

私はブレークポイントを設定し、割り当て後の値をチェックしました。それはテキストボックスの値を割り当てますが、まだ更新はしません。

+1

LINQ TO SQLへの最後の1週間を過ごしただけで、中止されていることがわかりました。あなたが気付いているのではないかと思います。私はEntity Frameworkにギアを切り替えます。 – madcolor

+1

私はそれがさらに発展しないことを知っています。しかし、彼らはフレームワークからそれを削除する予定はありません。私はEFに注意を払っていますが、速度を上げ始めるまでは使用しません(うまくいけば次のリリースの後にうまくいきます).L2Sは、私が取り組んでいる中小のアプリには最適です。 –

+0

クール..ちょうどそれを言及したい。 – madcolor

答えて

0

私はばかです。修正されました。みんなの投票。 データベースをチェックインするのではなく、通常の人のように、私はページを更新した後にウェブフォームを探していました。私はdbの値でテキストボックスを初期化していませんでした。更新が行われました。見る?私はあなたが馬鹿だと言った。

+1

ロニー、問題は何だったのですか?あなたはそれがばかげているかどうかを問わず、問題を抱えている唯一の人ではありそうもなく、誰かがそれから学ぶことができるかもしれません:) – JoshJordan

1

ブレークポイントを設定し、その行の前後にあるschedule.Emailの値を確認します。また、イミディエイトウィンドウを使用してtxtEmail.Txtにデータが実際に含まれているかどうかを確認します。

あなたが見つけたものを教えてください。

+0

投稿する前にそのすべてを試しました。それはよさそうだ。 –

+0

手動SQLクエリでschedule.Emailを変更できますか? LTSクエリをプロファイルし、そのパラメータ化クエリを手動で使用します。繰り返しますが、何が起こるか教えてください:) – JoshJordan

2

datacontextに送信される変更を確認します。あなたは変更が提出されているかを確認することができますウォッチ(またはクイックウォッチ)で

db.GetChangeSet(); 

ウィンドウ:

db.SubmitChanges()行が実行されます直前にブレークポイントを追加し、次のウォッチを追加します。

1

このdbmlはデータベーステーブルと一致していますか?それがデータベースと一致しない場合、あなたは奇妙なものを得ることができます。それを再インポートしてみてください。

関連する問題