2009-08-11 6 views
5

は、次のコードブロックを考えてみましょう:Linq to Sql:DataContextインスタンスが保留中の変更を含むコレクションを返すことはできますか?

using (PlayersDataContext context = new PlayersDataContext()) 
{ 
    Console.WriteLine(context.Players.Count()); // will output 'x' 
    context.Players.InsertOnSubmit(new Player {FirstName = "Vince", LastName = "Young"}); 
    Console.WriteLine(context.Players.Count()); // will also output 'x'; but I'd like to output 'x' + 1 
} 

は、私は同じプレイヤーがInsertOnSubmit文の前と後の両方カウントアプリケーションが出力さ

context.SubmitChanges(); 

を呼び出していないことを考えます。

私の二つの質問:

でき保留中の変更が含まれるDataContextのインスタンス戻りコレクション?

また、DataContextインスタンスをcontext.GetChangeSet()で調整する必要がありますか?

答えて

4

確かに、使用:

context.GetChangeSet() 

、より粒度のために、挿入、更新、削除のためのメンバーがあります。

EDIT:今、あなたの新しい質問を理解しています。はい、コレクションに変更を含める場合は、GetChangeSet()によって返されたコレクションと既存のコレクションを何とか組み合わせる必要があります。

+0

OK。実際、私の質問は単なる数以上のものに関係しています。 たとえば、変更したデータに興味があり、context.GetChangeSet()を使用した場合、DataContextインスタンスとcontext.GetChangeSet()を完全に調整する必要があります。 回答ありがとうございます。私は明確にするために私の質問に言い直しました。 –

+0

Gotcha。はい、私はあなたが意味するものを参照してください。私はマニュアルの組み合わせにすることがここに行く唯一の方法だと信じています。 – JoshJordan

+0

ありがとう、ジョシュ。私は少し質問を開いたままにしておきます。それ以外の場合は、あなたが正しいと思います。 –

関連する問題