不使用saveChanges更新DBSet

Kre*_*kon 1 .net c# entity-framework transactions entity-framework-6

我尝试达到以下目的:

  • 将新实体添加到DbContext的数据集中.
  • 不执行SaveChanges,因为插入后出现任何错误,新条目不应该转到数据库
  • 但是我需要稍后搜索新条目是否在Customer集合中

以下是我现在的情况:

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
Run Code Online (Sandbox Code Playgroud)

如果我执行SaveChanges,则existsingUser不再为null,但数据将保存到数据库.

_context.Customers.Add(customer);
_context.SaveChanges();
// ...
var existsingUser = _context.Customers
        .FirstOrDefault(x => x.CodeCustomer == customer.CodeCustomer);
// existsingUser = has object
Run Code Online (Sandbox Code Playgroud)

是否有任何可能的解决方案'真的'将客户添加到Customers集合,没有saveChanges()?如果是的话,请告诉我,

Dav*_*idG 5

您可以查看Local酒店.来自文档:

此属性返回一个ObservableCollection,其中包含当前由给定DbSet的上下文跟踪的所有Unchanged,Modified和Added对象.

例如:

var existsingUser = _context.Customers
    .Local
    .FirstOrDefault(x => x.CodeCustomer == customer.CodeCustomer);
Run Code Online (Sandbox Code Playgroud)