gpt4 book ai didi

entity-framework - 为什么 Entity Framework 查询不返回未保存的实体

转载 作者:行者123 更新时间:2023-12-01 15:14:44 27 4
gpt4 key购买 nike

考虑以下代码:

var Products_First = (from Entities.Product p in myContext.Product  
select p);

Entities.Product newProduct = new Entities.Product();
newProduct.Name = "New Product";
myContext.Products.AddObject(newProduct);

var Products_Again = (from Entities.Product p in myContext.Product
select p);

请注意,此处查询的是 Products_Again而不保存上下文,即未调用 myContext.SaveChanges()
Products_Again包含与 Products_First相同数量的产品。为什么是这样?添加了一个新的 Product并由相同的上下文对象跟踪。为什么在新的查询结果中看不到新产品?

将新对象添加到上下文后,是否有一种方法可以在不保存更改的情况下到达新对象?

最佳答案

ObjectQuery<T>类型的属性(例如myContext.Product)始终查询数据库。那就是他们的工作。

在EF 4.1中,您可以使用DbSet<T>.Local查询内存。

在EF <4.1中,您将使用:

ObjectContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Select(o => o.Entity).OfType<Product>()

关于entity-framework - 为什么 Entity Framework 查询不返回未保存的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com