2

私はこのようなコードを持っています

        var context = new MyDbContext(); // db context generated from database

        var id = Guid.NewGuid();
        var cust = new customer()
        { Id = id, Name = "John" };

        context.Customers.Add(cust);

       // context.SaveChanges();

        var res = context.Customers.Where(c => c.Id == id);

        MessageBox.Show(res.Count().ToString());

テーブルにレコードを挿入しました。クエリを実行しているときに、結果にこの新しいレコードが含まれていることを期待しています。しかし、実際にはそうではありません。前に SaveChanges() を作成した場合にのみ機能します。

私は何が間違っているのですか、なぜそのように機能しないのですか?

4

3 に答える 3

6

ローカル オブジェクトをクエリしてみる

http://msdn.microsoft.com/en-us/library/gg696248(v=vs.103).aspx

context.Customers.Local.yourqueryhere

これは、まだ保存されていないエンティティを含め、コンテキストによって追跡されたエンティティをクエリします。

于 2013-08-06T20:29:55.557 に答える
3

var res = context.Customers.Where(c => c.Id == id);データベースから読み取るため。

context.Customers.Add(cust);コンテキストのみにレコードを追加し (EF のコンテキストでオブジェクト グラフを更新)、context.SaveChanges();データベースに保存します。

于 2013-08-06T20:27:43.800 に答える