4

此代码狙击手来自使用 Entity Framework 5 Code First 将 CreatedDate 添加到实体

        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();

    }

但在我的解决方案中,我收到此错误“System.Collection.Generic.IEnumerable 'Does not contain a definition for Where ...

4

2 回答 2

5

我期待你失踪 using System.Linq

于 2013-10-26T18:24:15.217 回答
0

尝试在另一种方法中使用您的代码并在您的 SaveChanges 方法中调用它,就像这样。就在你的 savechanges 方法上面写

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;
    }
 }

然后在您的保存更改中调用它,例如

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

这应该可以解决问题:)

干杯!

于 2013-10-26T18:40:40.607 回答