在提交之前从上下文中获取数据

本文关键字:获取 数据 上下文 提交 | 更新日期: 2023-09-27 18:18:10

customers customer = GetCustomer();
customer.UserId = userId;
customer.NeedToPayTax = true;
customer.IsApproved = false;
_customerRepository.Create(customer);

之后在我们做一个提交之前,我尝试搜索这个新的customer

public int GetUncofirmedCount()
{
    var query = from p in _context.Set<customers>()
                where p.IsApproved == false
                select p;
    return query.Count();
}

,但大小总是0。如果我提交,那么我可以看到正确的结果。为什么?我怎么能得到数据从上下文返回,即使还没有提交?

在提交之前从上下文中获取数据

未测试代码:

    _customerRepository.ObjectStateManager.GetObjectStateEntries(EntityState.Added)
.Where(o => o.GetType() == typeof(Customer) && o => !o.IsApproved)
.Count();

或者,对于较新版本的EF,检查Local;

_customerRepository.Customers.Local
    .Where(o => o.GetType() == typeof(Customer) && o => !o.IsApproved)
    .Count();