C# EF ChangeTracker.Entries()。其中未识别
使用VS2010 SP1 MVC4和EF6。我有一个非常通用的代码。它的目的是获取DateCreated和DateModified属性,并在每次保存时填充它们C# EF ChangeTracker.Entries()。其中未识别,c#,entity-framework,asp.net-mvc-4,C#,Entity Framework,Asp.net Mvc 4,使用VS2010 SP1 MVC4和EF6。我有一个非常通用的代码。它的目的是获取DateCreated和DateModified属性,并在每次保存时填充它们 foreach (var history in this.ChangeTracker.Entries() .Where(e => e.Entity is IModificationHistory && (e.State == EntityState.Added || e.State == Enti
foreach (var history in this.ChangeTracker.Entries()
.Where(e => e.Entity is IModificationHistory && (e.State == EntityState.Added ||
e.State == EntityState.Modified))
.Select(e => e.Entity as IModificationHistory))
{
history.DateModified = DateTime.Now;
if (history.DateCreated == DateTime.MinValue)
{
history.DateCreated = DateTime.Now;
}
}
int result = base.SaveChanges();
我在.Where
上遇到一个错误。当我将
放在Entries()
之后时,intellisense没有为Where
提供选项,只有5个标准GetType
等。如果我删除Where子句,则.Select将显示错误
代码怎么了?威尔是正确的-我没有using语句。非常尴尬。谢谢。您的错误是什么?您是否缺少使用System.Linq的
指令?是的,它是使用指令。请注意,您应该使用这个.ChangeTracker.Entries()
。遇到了相同的问题。威尔·雷,完美接球。了解新事物,VS智能不适用于扩展方法。感谢Gert Arnold建议了另一种方法,不用.Where()从ChangeTracker中提取IModificationHistory对象