ObjectContext没有添加实体

时间:2013-04-03 17:06:14

标签: c# entity-framework-4

我正在向对象上下文添加一个实体,如此

public partial class MyEntities : ObjectContext
.
.
.

在另一个班级,我有以下代码

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

  dbContext.AddToInfo(x);
}

然而,当我在'dbContext'中添加'x'后检查Info中的实体时,监视会说dbContext.Info'枚举没有产生任何结果'。

以下是Watch窗口的屏幕截图

VS Watch Window

为什么会这样?

2 个答案:

答案 0 :(得分:0)

尝试:

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

  dbContext.YourTableObjectSet.AddObject(x);
}

YourTableObjectSet是表示表的ObjectSet的名称。

答案 1 :(得分:0)

然后添加一个新实体,它只出现在ObjectStateManager中。要使您的实体出现在ObjectSet中,您需要调用dbContext.SaveChanges。

如果您希望能够枚举所有实体,则需要查询ObjectSet和ObjectStateManager。

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

(语法可能有误,我只是从内存转换代码来自vb.net)