C# 如果调用save changes,是否只能检索objectset的元素?

C# 如果调用save changes,是否只能检索objectset的元素?,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,我有以下代码: context.MyEntities.AddObject(new Entity() { Id = 1 }); var entity = context.MyEntities.Where(e => e.Id == 1).FirstOrDefault(); 我还没有调用save changes,所以我试图检索我添加的对象,但是实体为空。为什么?ObjectContext.EntitySet将仅为我们获取具有EntityKey的实体。对于新插入的实体,在调用SaveChange

我有以下代码:

context.MyEntities.AddObject(new Entity() { Id = 1 });
var entity = context.MyEntities.Where(e => e.Id == 1).FirstOrDefault();

我还没有调用save changes,所以我试图检索我添加的对象,但是
实体
为空。为什么?

ObjectContext.EntitySet将仅为我们获取具有EntityKey的实体。对于新插入的实体,在调用SaveChanges()之前,它们只有一个临时实体键。有关详细信息,请参阅“使用实体键(实体框架)”一节

如果要在保存到数据库之前获取这些实体,请考虑使用上下文.ObjtStaseMeAgEng.GoObjtStaseEnter(…)方法。使用此方法,我们可以在调用.SaveChanges()之前获取所有添加/修改/删除的实体状态条目和实体。

已解决

通过Randolf的回答,我得出了以下解决方案:

context.MyEntities.AddObject(new MyEntity() { Id = 1 });
var entity = this.context
                 .ObjectStateManager
                 .GetObjectStateEntries(System.Data.EntityState.Added)
                 .Select(e => e.Entity)
                 .OfType<MyEntity>()
                 .Where(e => e.Id == 1)
                 .FirstOrDefault();
context.MyEntities.AddObject(新的MyEntity(){Id=1});
var entity=this.context
.ObjectStateManager
.GetObjectStateEntries(System.Data.EntityState.Add)
.选择(e=>e.Entity)
第()类
.其中(e=>e.Id==1)
.FirstOrDefault();