Session: How to evict single entity from a session?
We can clear all session operations and stop tracking of all entities by using Clear method, but sometimes there is need to only to do a cleanup only for one entity. For this purpose Evict
was introduced.
Syntax
void Evict<T>(T entity);
Parameters | ||
---|---|---|
entity | T | Instance of an entity that will be evicted |
Example I
Employee employee1 = new Employee
{
FirstName = "John",
LastName = "Doe"
};
Employee employee2 = new Employee
{
FirstName = "Joe",
LastName = "Shmoe"
};
session.Store(employee1);
session.Store(employee2);
session.Advanced.Evict(employee1);
session.SaveChanges(); // only 'Joe Shmoe' will be saved
Example II
Employee employee = session.Load<Employee>("employees/1"); // loading from server
employee = session.Load<Employee>("employees/1"); // no server call
session.Advanced.Evict(employee);
employee = session.Load<Employee>("employees/1"); // loading from server