2009-05-22 10 views
10

Linq To Sqlでは、エンティティの1つ、Facultyを更新するときに、Facultyオブジェクトの新しいインスタンスを作成してから、の一部をの値で初期化しています。私は、エンティティセットにこの新しいオブジェクトを添付し、変更を送信した場合Linq To SQLのアタッチ/リフレッシュEntityオブジェクト

、私は設定していないプロパティは、彼らがどのようなデータ型のデフォルト値を取ります。設定されたプロパティがその値と、データベースから値を取得設定されていない性質を保つように、私は、新しいオブジェクトを更新するにはどうすればよい

おかげ

+0

はただ好奇心から、ヌル種類の「GUID」ですか? – vidalsasoon

+0

これらは整数ではありません –

答えて

14

あなたは

context.Refresh(RefreshMode.OverwriteCurrentValues, faculty);

を試してみました後contextがあなたのlinq2sqlのDataContextのとfacultyはあなたがリフレッシュしたいエンティティである変更を提出しますか?

+0

バインディングソースの 'CurrentChanged'イベントの外でエンティティをリフレッシュする場合、' yourBindingSource.ResetCurrentItem(); 'を実行する必要があることに気付きました。 – Dor

0

何更新を提出、その後、適切な値を変更し、その後、データベースからオブジェクトを取得するでしょうか?

+0

私はattachメソッドを使用するいくつかのコードを維持しています。なぜ、それがあなたが最初に示唆したことをするために書かれていなかったのかよくわかりません。 –

+0

私は彼がテーブルに新しいエントリを作成するを参照していると思います。 – vidalsasoon

+0

ああ!今私は覚えています。バージョンと呼ばれるタイムスタンプフィールドがあるからです。メンバーの値タイプ「学部」のオブジェクトの「バージョン」変更:あなたはこのエラーが原因を示唆したものをやって。データベースによって計算または生成されたメンバーは変更できません。 –