实体框架4.1自动日期

Val*_*rio 5 entity-framework-4.1 asp.net-mvc-3

我是Entity Framework(和asp.net mvc 3)的新手,这是我第一次使用EF4.1代码时的第一次体验.

我的问题很简单:当我通过模型生成一个新的数据库表我想做

  1. 创建新行时,自动将当前日期时间添加到字段.
  2. 每次更新字段时自动更新字段.

实际上,变量看起来像:

 [DisplayName("Data Modifica")]
 [DataType(DataType.DateTime)]
 [DisplayFormat(DataFormatString = "{0:d}")]
 public DateTime DataModifica { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想我可以写一些关于datacontext的"OnModelCreating"事件,但我太新了已经掌握了这个:)

有人可以帮忙吗?

提前谢谢,V.

Lad*_*nka 10

这与模型的创建无关."模型"是类和数据库之间映射的描述.OnModelCreating用于修改映射定义,而不是修改数据.它与实体实例本身的数据无关.

如果您想要自动修改,您可以覆盖SaveChanges:

public override int SaveChanges()
{
     DateTime now = DateTime.Now;
     foreach (var entity in ChangeTracker.Entries<YourEntityType>()
                                         .Where(e => e.State == EntityState.Added || e.State == EntityState.Modified)
                                         .Select(e => e.Entity))
     {
          entity.DateModifica = now; // set the date
     }

     return base.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)