0

我正在像这样向对象上下文添加一个实体

public partial class MyEntities : ObjectContext
.
.
.

在另一个类中,我有以下代码

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

  dbContext.AddToInfo(x);
}

但是,当我在向其添加“x”后检查“dbContext”中的信息中的实体时,手表会说 dbContext.Info“枚举没有产生任何结果”。

这是 Watch 窗口的屏幕截图

VS 观察窗口

为什么会这样?

4

2 回答 2

0

尝试 :

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

  dbContext.YourTableObjectSet.AddObject(x);
}

YourTableObjectSet 是代表您的表的 ObjectSet 的名称。

于 2013-04-03T17:12:26.487 回答
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 回答