是否有可能让Entity Framework识别已创建但尚未保存在数据库中的对象?

Dis*_*ive 4 .net c# linq linq-to-entities entity-framework-4

Say Table1是一个包含两列的表.Table1ID和名称.

如果我执行以下代码...

var Obj1 = new Table1();
Obj1.Name = "hello"
TestDBEntities.AddToTable1(Obj1);

var currObj = Table1.Where(o => o.Name.Contains("hello")).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

currObj将返回null.

但是,如果我这样做

var Obj1 = new Table1();
Obj1.Name = "hello"
TestDBEntities.AddToTable1(Obj1);
**TestDBEntitles.SaveChanges();**

var currObj = Table1.Where(o => o.Name.Contains("hello")).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

然后currObj将返回我创建的第一个对象.这是因为该对象在数据库中.

我正在创建一个大型批处理进程,我不希望将所有内容保存到数据库直到最后.但是,我必须进行检查,例如确保某个对象尚未添加等,这需要我在将这些对象保存到数据库之前引用它们.

是否可以在Entity Framework中进行LINQ查询,该查询可以识别内存中尚未保存到数据库的对象.

And*_*iih 6

我在这里有点晚了... @DavidWicks的答案并不能讲述整个故事!

上下文确实提供了一种查询机制 - 它在EF4.1中比4.0更容易

在4.1中看看http://msdn.microsoft.com/en-us/library/gg696248(v=vs.103).aspx dbSet.Local属性保存对象的所有本地更改(尚未删除)在上下文中,所以你需要的只是查询!