4

This code sniper is from Adding CreatedDate to an entity using Entity Framework 5 Code First

        public override int SaveChanges()
    {
        DateTime saveTime = DateTime.Now;
        foreach (var entry in this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Added))
        {
            if (entry.Property("CreateDate").CurrentValue == null)
                entry.Property("CreateDate").CurrentValue = saveTime;
        }
        return base.SaveChanges();

    }

But on my solution I get this error "System.Collection.Generic.IEnumerable 'Does not contain a definition for Where ...

Community
  • 1
  • 1
Jose
  • 1,027
  • 1
  • 14
  • 23

2 Answers2

5

I'm expecting that you are missing using System.Linq

Eiaddar
  • 180
  • 1
  • 13
0

Try having your code in another method and call it in your SaveChanges method something like this. just above your savechanges method write

private void MyRule() 
{
  DateTime saveTime = DateTime.Now;
    foreach (var entry in this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Added))
    {
        if (entry.Property("CreateDate").CurrentValue == null)
            entry.Property("CreateDate").CurrentValue = saveTime;
    }
 }

and then call it in your save changes like

public override int SaveChanges()
{
 this.MyRule();
 return base.SaveChanges();
}

This should do the trick :)

Cheers!

photowalker
  • 353
  • 1
  • 8