Frameworks 实体框架数据库集找不到添加的实体
我遇到了一个问题,即当向ObjectContext的数据库集添加一个新实体时,为什么找不到该实体会再次查找它Frameworks 实体框架数据库集找不到添加的实体,frameworks,entity,dbset,Frameworks,Entity,Dbset,我遇到了一个问题,即当向ObjectContext的数据库集添加一个新实体时,为什么找不到该实体会再次查找它 using (var db = new SmartrailDB()) { var cart01 = db.Carts.SingleOrDefault(x => x.Number == 0); if (cart01 == null) { cart01 = new C
using (var db = new SmartrailDB())
{
var cart01 = db.Carts.SingleOrDefault(x => x.Number == 0);
if (cart01 == null)
{
cart01 = new Cart { Number = 0 };
db.Carts.Add(cart01);
}
var cart02 = db.Carts.SingleOrDefault(x => x.Number == 0); // Should find the cart I just added - right?
Assert.IsNotNull(cart02); // Fails because cart02 does not exist in the db.Carts collection
}
有人能告诉我我做错了什么吗
这里也是周五晚些时候,所以大脑现在处于半睡眠状态。在尝试访问实体之前,您必须更新您的上下文。只要做:
db.SaveChanges()代码>紧接着db.Cart.Add(cart01)代码>在尝试访问实体之前,必须更新上下文。只要做:
db.SaveChanges()代码>紧接着db.Cart.Add(cart01)代码>我不能这样做,因为交易尚未完成。创建的实体可能会被构成交易一部分的后续记录使用,这就是我有此需求的原因。现在,我在Context.Carts.Local中首先查找新实体,然后查找普通查询。讨厌双重工作,因为它感觉像是一种变通。如果你在更新2万行呢。你会一次保存所有内容,并在半小时内关闭网站,还是在每个实体更改后保存。你应该保存它,然后继续你正在做的任何事情。与我的问题无关,但无论如何-我知道如何处理它。每个事务在几个表中产生大约50到70条记录。我不能这样做,因为事务还没有完成。创建的实体可能会被构成交易一部分的后续记录使用,这就是我有此需求的原因。现在,我在Context.Carts.Local中首先查找新实体,然后查找普通查询。讨厌双重工作,因为它感觉像是一种变通。如果你在更新2万行呢。你会一次保存所有内容,并在半小时内关闭网站,还是在每个实体更改后保存。你应该保存它,然后继续你正在做的任何事情。与我的问题无关,但无论如何-我知道如何处理它。每个事务在几个表中产生大约50到70条记录。有关更多详细信息,请参阅的答案。DbSet类始终查询数据库,而不是本地存储。有关更多详细信息,请参阅的答案。