Change tracking is one great feature of Entity Framework,
which automatically detects the change in Entity. It is cool and no extra
effort needed to enable this behavior but sometimes this feature may degrade performances.
Because Entity Framework uses resource to keep track on entity
this is one disadvantage. Sometime it’s not even needed to keep track on
change. There might be situation that just we want to read the data and we do
not want to save it, in this situation, tracking on change is useless.
In this example, we will see how entity framework track
changes and how we can disable it programmatically.
using(var db = new AppEntities())
{
var data = db.Books.Where(f => f.id ==
1).FirstOrDefault();
Console.WriteLine("Before Change : " +
db.Entry(data).State);
data.name = "Changed";
Console.WriteLine("After Changed: " +
db.Entry(data).State);
}
In this code ,we are reading the entity at first and
printing the state of entity then we are modifying some property and again
printing the current state.
Now we are seeing that Entity Framework is tracking changes
of entity. Here we will learn to disable the feature. Have a look in below
code.
The highlighted line will disable change
tracking of entity. Here is output
Now, we are seeing the status is always “Unchanged”. So,
Entity Framework is no more tracking the change.
No comments:
Post a Comment