Entity Framework DbEntityEntry> '不包含 Where 的定义
本文关键字:包含 Where 定义 Framework DbEntityEntry Entity | 更新日期: 2023-09-27 18:36:55
此代码狙击手来自使用实体框架 5 代码优先将 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'不包含其中的定义......
我希望你错过了using System.Linq
尝试将代码放在另一个方法中,并在 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();
}
这应该可以解决问题:)
干杯!