实体框架4.1在上下文中标识新实体

|| 我有一个像下面这样的基类。我所有的实体都继承自此
public abstract Entity
{
  public DataTime CreationDate{get;set;}
  public DataTime ModifiedDate{get;set;}
}
当新实体添加到数据库时,我想设置“ 1”。 通过覆盖
SaveChanges()
方法并检查
EntityState
处于
Modified
状态,我可以设置
ModifiedDate
。 问题是我无法通过检查ѭ3来识别它是否是新实体,因为新实体和其他已加载实体处于
Added
状态。 那么有没有办法区分新实体? 提前致谢。     
已邀请:
        加载的实体始终处于
Unchanged
状态。处于“ 7”状态的新添加的实体,处于“ 4”状态的已更改实体和处于“ 11”状态的已删除实体。如果您发现任何其他行为,则说明您在做错事或使用EF不正确。顺便说一句。除非您的创建过程不需要很长时间,否则可以通过以下方法简单地设置
CreationDate
public Entity()
{
    CreationDate = DateTime.Now;
}
    
        通过浏览through14中的项目并将当前日期/时间分配给CreationDate-Property为null的创建日期来解决此问题。例:
public override int SaveChanges()
{
  DateTime saveTime = DateTime.Now;
  foreach (var entry in this.ChangeTracker.Entries())
  {
    if (entry.Entity is Entity)
    {
      if (entry.Property(\"CreationDate\").CurrentValue == null)
        entry.Property(\"CreationDate\").CurrentValue = saveTime;
      entry.Property(\"ModifiedDate\").CurrentValue = saveTime;

     }
   }
   return base.SaveChanges();
}
    

要回复问题请先登录注册