我尝试达到以下目的:
以下我现在拥有的内容:
public virtual DbSet<Customer> Customers { get; set; }
_context.Customers.Add(customer);
// NO _context.SaveChanges();
// ...
var existsingUser = _context.Customers
.FirstOrDefault(x => x.CodeCustomer == customer.CodeCustomer);
// existsingUser = null, and should be valid populated object
如果我执行SaveChanges,则existsingUser不再为null,但数据将保存到数据库中。
_context.Customers.Add(customer);
_context.SaveChanges();
// ...
var existsingUser = _context.Customers
.FirstOrDefault(x => x.CodeCustomer == customer.CodeCustomer);
// existsingUser = has object
是否有任何可能的解决方案真的&#39;将客户添加到Customers集合,而不使用saveChanges()? 如果是的话,请告诉我,
答案 0 :(得分:5)
您可以查看Local
属性。来自文档:
此属性返回一个ObservableCollection,其中包含当前由给定DbSet的上下文跟踪的所有Unchanged,Modified和Added对象。
例如:
var existsingUser = _context.Customers
.Local
.FirstOrDefault(x => x.CodeCustomer == customer.CodeCustomer);
答案 1 :(得分:-1)
如果没有SaveChanges()
,则无法添加到集合中。 _context.Customers.Add(customer)
表示您将此对象标记为要添加到数据库。在机舱下,EF上下文的工作方式类似于交易。您可以进行大量操作,但只有SaveChanges()
保存到数据库。
_context.Customers.FirstOrDefault
从数据库请求数据。
我希望它可以帮到你。