-
Notifications
You must be signed in to change notification settings - Fork 0
EntityState
Marcin Sulecki edited this page Mar 28, 2017
·
3 revisions
-
Detached Odłączona
-
Added Dodana
-
Changed Zmodyfikowana
-
Deleted Usunięta
-
Unchaged Niezmieniona
var state = context.Entry(customer).State
context.Entry(customer).State = EntityState.Changed;
Pobieranie stanu obiektu
if (context.ChangeTracker.HasChanges())
{
var entries = context.ChangeTracker.Entries();
foreach (var entry in entries)
{
Console.WriteLine($"Entity Name: {entry.Entity.GetType().FullName}");
Console.WriteLine($"Status: {entry.State}");
}
}
public abstract class Base
{
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
public override int SaveChanges()
{
var entries = this.ChangeTracker.Entries();
var added = this.ChangeTracker.Entries<Base>()
.Where(e => e.State == EntityState.Added)
.Select(e => e.Entity);
var modified = this.ChangeTracker.Entries<Base>()
.Where(e => e.State == EntityState.Modified)
.Select(e => e.Entity);
var now = DateTime.UtcNow;
foreach (var entry in added)
{
entry.CreatedDate = now;
entry.ModifiedDate = now;
}
foreach (var entry in modified)
{
entry.ModifiedDate = now;
}
return base.SaveChanges();
}