2009-05-01 11 views
3

前に、LINQツーSQLのDataContextからオブジェクトを取得します。は、私はまだ)(のSubmitChangesを呼び出すことなく、LINQツーSQLのDataContextに新しいオブジェクトを挿入でSubmitChanges

私がしたい私のコード内の別の場所で今
MyDataContext db = new MyDataContext(); 
MyObject newObject = new MyObject() 
{ 
    Id = 1, 
    Name = "MyName" 
}; 
db.MyObjects.InsertOnSubmit(newObject); 

データベースにまだ存在しないにもかかわらず、この新しいオブジェクトを取得します。だから、私はそこに新しいオブジェクトがキャッシュされていると信じているので、そこに同じDataContextインスタンスを渡します。そして、今私はそれを取得したい。しかし、これはうまくいかない:

MyObject newObject = db.MyObjects.Where(o => o.Id == 1).SingleOrDefault(); 

私は何をしたいのですか?それは可能ですか?

答えて

1

試してみてください。

db.MyObjects.SingleOrDefault(o => o.Id == 1); 

あなたは、これは同じことだと思うが、これらの2つの接続の問題参照してくださいね。それはdoesnの場合

を私は、.Single(o => o.Id == 1)が3.5 SP1で動作することを知っています(私は '私が.SingleOrDefault(pred)を試したかどうかは分かりません)。明らかに.Where(o => o.Id == 1).Single()は4.0で修正されています - もう一度、私は.Where(pred).SingleOrDefault()を試していません。

+0

これはなぜ違いますか? –

+0

その質問を無視する –

+0

私はなぜそれが異なるかもしれないかを説明する "接続"問題を追加しました –

関連する問題