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查询,该查询可以识别内存中尚未保存到数据库的对象.
我在这里有点晚了... @DavidWicks的答案并不能讲述整个故事!
上下文确实提供了一种查询机制 - 它在EF4.1中比4.0更容易
在4.1中看看http://msdn.microsoft.com/en-us/library/gg696248(v=vs.103).aspx dbSet.Local属性保存对象的所有本地更改(尚未删除)在上下文中,所以你需要的只是查询!