0

このようにオブジェクトコンテキストにエンティティを追加しています

public partial class MyEntities : ObjectContext
.
.
.

別のクラスでは、次のコードがあります

using (MyEntities dbContext = new MyEntities())
{
  Info x = new Info();

  dbContext.AddToInfo(x);
}

ただし、「x」を追加した後に「dbContext」の Info でエンティティを確認すると、時計は dbContext.Info 「列挙は結果を生成しませんでした」と表示します。

ウォッチ ウィンドウのスクリーンショットを次に示します。

VSウォッチウィンドウ

なぜこうなった?

4

2 に答える 2

0

次に、新しいエンティティを追加します。これは、ObjectStateManager にのみ存在します。エンティティを ObjectSet に表示するには、dbContext.SaveChanges を呼び出す必要があります。

すべてのエンティティを列挙できるようにするには、ObjectSet と ObjectStateManager をクエリする必要があります。

dbContext.Infos.Union(dbContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Select(e=> e.Entity).OfType<Info>)

(構文が間違っている可能性があります。vb.net のコードをメモリからのみ変換します)

于 2013-04-03T17:25:59.900 に答える
0

試す :

using (MyEntities dbContext = new MyEntities())
{
  Info x = new Info();

  dbContext.YourTableObjectSet.AddObject(x);
}

YourTableObjectSet は、テーブルを表す ObjectSet の名前です。

于 2013-04-03T17:12:26.487 に答える