实体框架 - 添加新对象

时间:2013-01-14 16:06:29

标签: linq frameworks entity savechanges

我有一个名为'Question'的实体类型,当我创建它的新实例并将其添加到实体集'Questions'(使用AddObject()),而不是在上下文中调用SaveChanges()方法时,一切正常。但是当我添加它,但还没有调用SaveChanges()并尝试对'问题'执行一些linq查询结果不包含最近添加的'Question'对象时,在调用SaveChanges()之前,它似乎对linq不可见。这是正确的行为还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

我认为这是正确的行为,特别是如果你指的是实体框架。

这应该能够在调用保存更改之前获取您添加的对象,即一旦添加了它们:

ObjectStateManager.GetObjectStateEntries 

msdn ref

答案 1 :(得分:0)

为简单起见,我决定不使用LINQ,而是使用Count()方法查看AddObject()之后我有多少个问题对象

(_context.Questions.ToArray()).Count()

得到8

// defaultQuestion object initialization here ...
_context.Questions.AddObject(defaultQuestion);
(_context.Questions.ToArray()).Count()

再次得到8